服務器:
阿里雲 Alibaba Cloud Linux
下載
- 進入到預計存放nginx的目錄,比如:
/usr/local/
- 下載nginx壓縮包,並解壓
cd /usr/local wget http://nginx.org/download/nginx-1.18.0.tar.gz tar -zxvf nginx-1.18.0.tar.gz
安裝
- 進入到解壓的文件夾並安裝
安裝完成后,會有cd /usr/local/nginx-1.18.0 ./configure make -j2 make install
nginx
文件夾
配置
配置文件位置:/usr/local/nginx/conf/nginx.conf
其他的不用變,主要看server
:
server {
listen 80; # 端口
server_name localhost;
index index.html index.htm; # 默認文件,會在索引文件夾下,尋找index配置的文件
## alias 不包含url的路徑
## 比如url:http://ip/aaa
## 服務器索引的文件是 /home/www/dist/index.html
location /aaa/ {
alias /home/www/dist/;
}
## root 包含url的路徑
## 比如url:http://ip/aaa
## 服務器索引的文件是 /home/www/dist/aaa/index.html
location /aaa/ {
root /home/www/love/dist/;
}
}
運行
-
進入nginx命令目錄:
/usr/local/nginx/sbin/
-
運行
cd /usr/local/nginx/sbin/ ./nginx
-
重啟
cd /usr/local/nginx/sbin/ ./nginx -s reload
-
查看nginx進程
ps -ef|grep nginx
如果顯示如下,則表示啟動成功:
問題排查
-
查看日志文件
打開日志的配置:
日志文件位置:/usr/local/nginx/logs
其中nginx.pid
文件記錄的是nginx進程的pid,不要刪除,否則nginx -s reload
等需要殺進程的命令會報錯。 -
資源文件路徑assets找不到
默認情況下,打包后的代碼中,index.html引入的文件是絕對路徑:
如果nginx沒有配置assets的location,是找不到資源的。
就算配了location,如果一個服務器上部署了多個前端項目,就會存在多個assets,那就要把不同項目的資源文件夾名稱都改成不一樣的,再把每一個文件路徑配上location。這樣麻煩,干脆把把這里的絕對路徑改為相對路徑:
webpack打包:修改assetPublicPath:'./'
vite 打包:修改base:'./'