nginx各種代理配置大全
更新時間:2023年09月28日 11:09:09 作者:bacawa
本文主要介紹了nginx各種代理配置大全,主要包括了路徑配置,http跳轉https,微信支付的校驗等,具有一定的參考價值,感興趣的可以了解一下
以下展示不同情況下的配置:location路徑、root路徑、alias路徑、proxy_pass代理路徑。
通過這幾個配置路徑地址對比,建議location后面都帶上斜杠。
1. 基礎配置說明
# 進程數量 worker_processes 1; events { # 最大連接數量 worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65;
2. 演示如何強制http跳轉https
server { listen 80; server_name test.com; # http強制跳轉到https rewrite ^(.*)$ https://$server_name$1 permanent; }
3. 演示如何配置微信支付的校驗文件
server { listen 80; server_name localhost; # 默認根路徑 location / { root index.html; } # 微信支付校驗文件,可以直接配置訪問名稱 location ^~/MP_verify_2g3uEjrB5B2LIbNl.txt { alias /home/MP_verify_2g3uEjrB5B2LIbNl.txt; } # 微信支付校驗文件,也可以通過正則配置 location ~^/MP_verify_[a-zA-Z0-9]*\.(txt)$ { root /home/; rewrite ^/home/(.txt)$ /home/$1 last; } }
4. 演示root和alias兩種配置靜態(tài)資源的區(qū)別
server { listen 80; server_name localhost; # 用root方式,location中的路徑會拼加到root的地址后面 # 請求路徑為:http://localhost:8080/files/index.jpg 實際訪問為:/home/files/index.jpg location ~^/files/ { root /home/; index index.html index.htm; } # 用alias方式,location中的路徑不會拼加到alias的地址后面 # 這請求路徑為:http://localhost:8080/files/index.jpg 實際訪問為:/home/index.jpg location ~^/files/ { alias /home/; index index.html index.htm; } }
5.演示請求后臺接口代理配置
server { listen 8080; server_name localhost; #################### 第一種場景(代理地址不加斜杠) #################### # 請求路徑為:http://127.0.0.1:8080/api/getUser 實際代理為:http://127.0.0.1:8000/api/getUser location ^~/api/ { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $http_host; #后臺可以獲取到完整的ip+端口號 proxy_set_header X-Real-IP $remote_addr; #后臺可以獲取到用戶訪問的真實ip地址 } # 請求路徑為:http://127.0.0.1:8080/api/getUser 實際指向為:http://127.0.0.1:8000/api/getUser location ^~/api { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $http_host; #后臺可以獲取到完整的ip+端口號 proxy_set_header X-Real-IP $remote_addr; #后臺可以獲取到用戶訪問的真實ip地址 } #################### 第二種場景(代理地址+斜杠) #################### # 請求路徑為:http://127.0.0.1:8080/api/getUser 實際代理為:http://127.0.0.1:8000/getUser location ^~/api/ { proxy_pass http://127.0.0.1:8000/; proxy_set_header Host $http_host; #后臺可以獲取到完整的ip+端口號 proxy_set_header X-Real-IP $remote_addr; #后臺可以獲取到用戶訪問的真實ip地址 } # 請求路徑為:http://127.0.0.1:8080/api/getUser 實際代理為:http://127.0.0.1:8000//getUser location ^~/api { proxy_pass http://127.0.0.1:8000/; proxy_set_header Host $http_host; #后臺可以獲取到完整的ip+端口號 proxy_set_header X-Real-IP $remote_addr; #后臺可以獲取到用戶訪問的真實ip地址 } #################### 第三種場景(代理地址+后綴) #################### # 請求路徑為:http://127.0.0.1:8080/api/getUser 實際代理為:http://127.0.0.1:8000/user/getUser location ^~/api { proxy_pass http://127.0.0.1:8000/user; proxy_set_header Host $http_host; #后臺可以獲取到完整的ip+端口號 proxy_set_header X-Real-IP $remote_addr; #后臺可以獲取到用戶訪問的真實ip地址 } # 請求路徑為:http://127.0.0.1:8080/api/getUser 實際代理為:http://127.0.0.1:8000/usergetUser location ^~/api/ { proxy_pass http://127.0.0.1:8000/user; proxy_set_header Host $http_host; #后臺可以獲取到完整的ip+端口號 proxy_set_header X-Real-IP $remote_addr; #后臺可以獲取到用戶訪問的真實ip地址 } #################### 第四種場景(代理地址+后綴+斜杠) #################### # 請求路徑為:http://127.0.0.1:8080/api/getUser 實際代理為:http://127.0.0.1:8000/user/getUser location ^~/api/ { proxy_pass http://127.0.0.1:8000/user/; proxy_set_header Host $http_host; #后臺可以獲取到完整的ip+端口號 proxy_set_header X-Real-IP $remote_addr; #后臺可以獲取到用戶訪問的真實ip地址 } # 請求路徑為:http://127.0.0.1:8080/api/getUser 實際代理為:http://127.0.0.1:8000/user//getUser location ^~/api { proxy_pass http://127.0.0.1:8000/user/; proxy_set_header Host $http_host; #后臺可以獲取到完整的ip+端口號 proxy_set_header X-Real-IP $remote_addr; #后臺可以獲取到用戶訪問的真實ip地址 } }
6.演示前端項目如何部署nginx
server { listen 8090; server_name localhost; # 默認訪問 # 部署路徑:/home/web/my_demo # 訪問路徑為:http://localhost:8090/ location / { try_files $uri $uri/ /index.html; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; root /home/web/my_demo/; index index.html index.htm; } # 帶前綴的訪問 # 部署路徑:/home/web/my_demo # 訪問路徑為:http://localhost:8090/my_demo/ # 如果location路徑最后沒有配置斜杠,則瀏覽器輸入訪問地址后,路徑最后會自動拼一個斜杠 location ^~/my_demo/ { try_files $uri $uri/ /my_demo/index.html; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; root /home/web/; index index.html index.htm; } } }
到此這篇關于nginx各種代理配置大全的文章就介紹到這了,更多相關nginx 代理配置內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
通過Nginx的proxy_set_header設置請求頭無效的解決
這篇文章主要介紹了通過Nginx的proxy_set_header設置請求頭無效的解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12