首頁 > 軟體

nginx通過https部署vue專案的完整步驟

2022-05-17 16:02:46

本篇主要記錄vue專案,通過nginx實現https部署的免費方案。主要參考步驟和關鍵點如下所示。

一、生成證書

進入nginx安裝目錄

# 進入nginx目錄
[root@hecs-402944 nginx]# cd /etc/nginx/
[root@hecs-402944 nginx]# ls
conf.d     fastcgi.conf          fastcgi_params          koi-utf  mime.types          nginx.conf          scgi_params          uwsgi_params          win-utf
default.d  fastcgi.conf.default  fastcgi_params.default  koi-win  mime.types.default  nginx.conf.default  scgi_params.default  uwsgi_params.default

建立ssl檔案目錄

# 建立ssl目錄
[root@hecs-402944 nginx]# mkdir ssl
[root@hecs-402944 nginx]# cd ssl

生成server.key,需要設定兩次密碼

[root@hecs-402944 ssl]# openssl genrsa -aes256 -out server.key 2048
Generating RSA private key, 2048 bit long modulus
...........................................................+++
................................................................................................+++
e is 65537 (0x10001)
Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key:

生成無密碼的server.key

# 生成無密碼的server.key
[root@hecs-402944 ssl]# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key:
writing RSA key
[root@hecs-402944 ssl]# ls
server.key

建立伺服器證書的申請檔案 server.csr

此處需要填寫具體內容,國家、省份、城市、公司、行業、網站、郵箱等,後面的兩次密碼直接回車就好。

[root@hecs-402944 ssl]# openssl req -new -key server.key -out server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
## 國家
Country Name (2 letter code) [XX]:CN
## 省份
State or Province Name (full name) []:heilongjiang
## 城市
Locality Name (eg, city) [Default City]:haerbin
## 公司
Organization Name (eg, company) [Default Company Ltd]:xxxxxxx
## 行業
Organizational Unit Name (eg, section) []:IT
## 網站
Common Name (eg, your name or your server's hostname) []:www.xxxxxxx.com
## 郵箱
Email Address []:xxxxxx@xxxxxx.com.cn

Please enter the following 'extra' attributes
to be sent with your certificate request
## 兩次回車
A challenge password []:
An optional company name []:
[root@hecs-402944 ssl]# ll
總用量 8
-rw-r--r-- 1 root root 1082 5月  13 09:15 server.csr
-rw-r--r-- 1 root root 1679 5月  13 09:11 server.key

生成crt證書檔案server.crt

# 生成crt證書檔案server.crt
[root@hecs-402944 ssl]# openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650
Signature ok
subject=/C=CN/ST=heilongjiang/L=haerbin/O=dongfangtongwangxin/OU=IT/CN=www.tongtech.com/emailAddress=weirx@mvtech.com.cn
Getting Private key

二、nginx設定

前端專案使用nginx部署,所以我們採用nginx爆率443埠,開啟ssl。

server {
	   listen 443 ssl http2 default_server;
	   listen [::]:443 ssl http2 default_server;

	   ssl on;
	   ssl_certificate "/etc/nginx/ssl/server.crt";
	   ssl_certificate_key "/etc/nginx/ssl/server.key";
	   ssl_session_cache shared:SSL:1m;
	   ssl_session_timeout 10m;
	   ssl_ciphers HIGH:!aNULL:!MD5;
	   ssl_prefer_server_ciphers on;
	   
        server_name  _;
		
        include /etc/nginx/default.d/*.conf;

        root /opt/vue/dist;

        gzip_static on;

	location / {
         proxy_pass http://localhost:13000;
        }

           # 支援websocket的設定項
	    location /websocket {
	        proxy_pass http://localhost:13000;
	        # WebScoket Support
	        proxy_http_version 1.1;
	        proxy_set_header Upgrade $http_upgrade;
	        proxy_set_header Connection "upgrade";
	    }
        }

三、修改vue組態檔

專案使用qiankun框架,分為主工程和子工程,所以我們需要修改在主工程當中的子工程設定,主要是存取的ip地址。

修改.env檔案,在使用http時是需要設定ip+埠的,修改為https直接使用ip即可。

#開發環境env設定
NODE_ENV=production
VUE_APP_SYSTEM_URL=//172.16.3.30/system
VUE_APP_COMPONENTS_URL=//172.16.3.30/components
VUE_APP_API_BASIC_URL=//172.16.3.30/basic

VUE_APP_SOCKETURL = 'wss://172.16.3.29'

如上所示,需要將websocket的請求地址由ws修改為wss,否則會報錯。

總結

到此這篇關於nginx通過https部署vue專案的文章就介紹到這了,更多相關nginx通過https部署vue內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com