本文來自我的內部分享,整理發出來。
1.安裝
菜鳥教程:https://www.runoob.com/linux/nginx-install-setup.html
需要下載PCRE,需要編譯安裝。
2.配置文件 /nginx/conf
我們關注 nginx.conf文件
http{ server{ location /a { root /a } location /b { alias /a } } }
location 匹配路徑{ root/alias 指向的文件路徑 }
匹配路徑:
~:正則
^~:唯一匹配,優先匹配
/ 通用匹配
----------
root和alias區別:
location /test/ { alias /usr/local/; } location /test/ { root /usr/local/; }
同樣請求:/test/1.jpg
alias 找/usr/local/1.jpg這個文件
root 找/usr/local/test/1.jpg
出現404,找/nginx/log/error.log
3.vue路由遇到nginx
對於history模式(我們的項目)
location / { root /usr/local/; try_files $uri $uri/ /index.html; }
對於hash模式(默認)不用寫try_files
location / { root /usr/local/; index index.html }
4.命令
/nginx/sbin/nginx # 啟動 /nginx/sbin/nginx -s reload # 重新載入配置文件 /nginx/sbin/nginx -s reopen # 重啟 Nginx /nginx/sbin/nginx -s stop # 停止 Nginx
/nginx前面有路徑,安裝時候的位置。
其中,/nginx/sbin/nginx -s reopen 並不會重新加載新的配置文件
/nginx/sbin/nginx -s reload 可以重新加載配置文件
5.我們現在的配置
server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; #匹配用戶端,vue vue-router:history項目 location / { root /home/frontuser/front_project/commercial_service/dist; try_files $uri $uri/ /index.html; } #匹配static location ^~ /static/ { alias /usr/local/static/; } #匹配后台管理系統,vue,vue-router:history location ^~ /admin/ { alias /home/frontuser/front_project/commercial_service_admin/dist/; index index.html; try_files $uri $uri/ /admin/index.html; } }
這樣實現了2個vue項目,路由history模式的部署,一個的訪問路徑是根路徑:/,一個是二級目錄:/admin
管理后台項目commercial_service_admin的publicPath要做改變,對於vue-cli3來說,修改vue.config.js為:
commercial_service_admin/vue.config.js
module.exports = { publicPath: process.env.NODE_ENV === 'production' ? '/admin/' : '/' }