Nginx反向代理https配置解决方案
目錄
準備工作
Step1:
Step2:?????
Step3:
Step4:
準備工作
? ? ? ? 首先擁有一臺服務器,這里我使用的是阿里云服務器,并且在服務器上安裝了nginx;
? ? ? ? 其次有一個已經備案的域名;
? ? ? ? 最后在阿里云上申請兩個免費的SSL證書;
? ? ? ? Q:為什么需要兩個SSL證書呢?
? ? ? ? A:如今的項目基本都是前后端分離的,所以我們需要一個主域名用來訪問我們的前端頁面,還需要一個接口域名(域名命名規范:api.xxxx.xx)用來請求后端的接口,這樣,就兩個域名,所以需要兩個SSL證書。
Step1:
? ? ? ? 從阿里云下載兩個證書。
? ? ? ? 注意:我們要使用Nignx反向代理,所以要選擇Nginx類型的證書進行下載?
????????
? ? ? ? 得到了兩個壓縮包,解壓,會得到兩個文件(一共四個,一個壓縮包對應兩個)
????????
? ? ? ? ?然后把".pem"改成“.cer”
? ? ? ??
Step2:?????
? ? ? ? 連接到服務器,找到nginx安裝的根目錄(我的是“/usr/local/nginx”)
? ? ? ? 隨后在conf文件夾中新建一個cert的文件夾,用來存放剛剛解壓的四個文件
????????
Step3:
? ? ? ? 在這一步之前,我們首先要將我們的后端jar包,從服務器上啟動。
? ? ? ? ?在確保jar包開啟之后,我們來修改nginx的配置文件nginx.conf,來實現反向代理
? ? ? ? 添加以下代碼
upstream tomcatservers{server ip地址:端口號; }server {listen 80;server_name xxx.xxx.xxx;rewrite ^(.*)$ https://$host$1;location / {proxy_pass http://tomcatservers;} }server {listen 443; #配置HTTPS的默認訪問端口號為443。此處如果未配置HTTPS的默認訪問端口,可能會造成Nginx無法啟動。Nginx 1.15.0以上版本請使用listen 443 ssl代替listen 443和ssl on。server_name xxx.xxx.xxx; #將xxx.xxx.xxx修改為您證書綁定的域名,例如:www.example.com。root html;ssl on;index index.html index.htm;ssl_certificate cert/domain name.cer; #將domain name.pem替換成您證書的文件名稱。ssl_certificate_key cert/domain name.key; #將domain name.key替換成您證書的密鑰文件名稱。ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用該協議進行配置。ssl_prefer_server_ciphers on;location / {proxy_pass http://tomcatservers;}}#以上是配置接口域名的 #接下來是配置主域名的,兩個格式都是基本一樣的 server {listen 80;server_name xxx.xxx.xx;rewrite ^(.*)$ https://$host$1;location / {root /home/tuling-mall/dist; #站點目錄。index index.html index.htm;} }server {listen 443; #配置HTTPS的默認訪問端口號為443。此處如果未配置HTTPS的默認訪問端口,可能會造成Nginx無法啟動。Nginx 1.15.0以上版本請使用listen 443 ssl代替listen 443和ssl on。server_name xxx.xxx.xxx; #將xxx.xxx.xxx修改為您證書綁定的域名,例如:www.example.com。root html;ssl on;index index.html index.htm;ssl_certificate cert/domain name.cer; #將domain name.pem替換成您證書的文件名稱。ssl_certificate_key cert/domain name.key; #將domain name.key替換成您證書的密鑰文件名稱。ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用該協議進行配置。ssl_prefer_server_ciphers on;location / {root /home/tuling-mall/dist; #站點目錄。index index.html index.htm;}}? ? ? ? nginx反向代理強大的地方就是,不同的域名可以共用一個端口號,所以使用http訪問都通過80端口(來代理springboot內置tomcat的接口),使用https訪問都通過443端口。
Step4:
? ? ? ? 重啟nginx
? ? ? ? ./nginx -s?reload
到此為止,就可以通過https來訪問域名了,大功告成
總結
以上是生活随笔為你收集整理的Nginx反向代理https配置解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue脚手架开发 + element-U
- 下一篇: DLP 3D打印技术有什么优点