建立一個nginx server
在nginx的配置檔案中建立一個server監聽前端部署的端口
server
{
#監聽端口
listen 80;
server_name 網站名稱;
}
使用Nginx代理前端頁面
然後在server中添加一個location,就是把通路路徑指向前端項目打包後的位址
location / {
root 前端項目打包後的位址;
index index.html index.htm;
}
nginx請求轉發到後端
在部署前後端分離項目時,通常都要使用nginx把前端的請求轉發到後端的接口上去,這就要配置nginx的proxy_pass功能。
# 轉發請求到後端
location /api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_redirect off;
# proxy_set_header X-NginX-Proxy true;
proxy_pass 後端接口位址;
}
代理轉發需要注意的事兒
在nginx中配置proxy_pass代理轉發時,如果在proxy_pass後面的url加/,表示絕對根路徑;如果沒有/,表示相對路徑,把比對的路徑部分也給代理走。
第一種
代理至位址,proxy_pass 後面沒有 “ / ”
location /api {
proxy_pass http://localhost:9898;
}
- 通路:http://localhost/api/xxx
- 轉至:http://localhost:9898/xxx
第二種
代理至位址,proxy_pass 後面有 “ / ”
location /api {
proxy_pass http://localhost:9898/;
}
- 通路:http://localhost/api/xxx
- 轉至:http://localhost:9898/api/xxx
第三種
location /page {
alias /usr/share/nginx/html/page/;
index index.html index.html;
}
#一鍵申請SSL證書驗證目錄相關設定
location ~ \.well-known{
allow all;
}
#代理網站圖示,可以注釋
location = /favicon.ico {
root /**/assets/;
}
#禁止通路的檔案或目錄
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
#通路日志
access_log /**/日志名;
#錯誤日志
error_log /**/日志名;