nginx各種代理配置大全
以下展示不同情況下的配置:location路徑、root路徑、alias路徑、proxy_pass代理路徑。
通過(guò)這幾個(gè)配置路徑地址對(duì)比,建議location后面都帶上斜杠。
1. 基礎(chǔ)配置說(shuō)明
# 進(jìn)程數(shù)量 worker_processes 1; events { # 最大連接數(shù)量 worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65;
2. 演示如何強(qiáng)制http跳轉(zhuǎn)https
server { listen 80; server_name test.com; # http強(qiáng)制跳轉(zhuǎn)到https rewrite ^(.*)$ https://$server_name$1 permanent; }
3. 演示如何配置微信支付的校驗(yàn)文件
server { listen 80; server_name localhost; # 默認(rèn)根路徑 location / { root index.html; } # 微信支付校驗(yàn)文件,可以直接配置訪問(wèn)名稱 location ^~/MP_verify_2g3uEjrB5B2LIbNl.txt { alias /home/MP_verify_2g3uEjrB5B2LIbNl.txt; } # 微信支付校驗(yàn)文件,也可以通過(guò)正則配置 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中的路徑會(huì)拼加到root的地址后面 # 請(qǐng)求路徑為:http://localhost:8080/files/index.jpg 實(shí)際訪問(wèn)為:/home/files/index.jpg location ~^/files/ { root /home/; index index.html index.htm; } # 用alias方式,location中的路徑不會(huì)拼加到alias的地址后面 # 這請(qǐng)求路徑為:http://localhost:8080/files/index.jpg 實(shí)際訪問(wèn)為:/home/index.jpg location ~^/files/ { alias /home/; index index.html index.htm; } }
5.演示請(qǐng)求后臺(tái)接口代理配置
server { listen 8080; server_name localhost; #################### 第一種場(chǎng)景(代理地址不加斜杠) #################### # 請(qǐng)求路徑為:http://127.0.0.1:8080/api/getUser 實(shí)際代理為:http://127.0.0.1:8000/api/getUser location ^~/api/ { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $http_host; #后臺(tái)可以獲取到完整的ip+端口號(hào) proxy_set_header X-Real-IP $remote_addr; #后臺(tái)可以獲取到用戶訪問(wèn)的真實(shí)ip地址 } # 請(qǐng)求路徑為:http://127.0.0.1:8080/api/getUser 實(shí)際指向?yàn)椋篽ttp://127.0.0.1:8000/api/getUser location ^~/api { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $http_host; #后臺(tái)可以獲取到完整的ip+端口號(hào) proxy_set_header X-Real-IP $remote_addr; #后臺(tái)可以獲取到用戶訪問(wèn)的真實(shí)ip地址 } #################### 第二種場(chǎng)景(代理地址+斜杠) #################### # 請(qǐng)求路徑為:http://127.0.0.1:8080/api/getUser 實(shí)際代理為:http://127.0.0.1:8000/getUser location ^~/api/ { proxy_pass http://127.0.0.1:8000/; proxy_set_header Host $http_host; #后臺(tái)可以獲取到完整的ip+端口號(hào) proxy_set_header X-Real-IP $remote_addr; #后臺(tái)可以獲取到用戶訪問(wèn)的真實(shí)ip地址 } # 請(qǐng)求路徑為:http://127.0.0.1:8080/api/getUser 實(shí)際代理為:http://127.0.0.1:8000//getUser location ^~/api { proxy_pass http://127.0.0.1:8000/; proxy_set_header Host $http_host; #后臺(tái)可以獲取到完整的ip+端口號(hào) proxy_set_header X-Real-IP $remote_addr; #后臺(tái)可以獲取到用戶訪問(wèn)的真實(shí)ip地址 } #################### 第三種場(chǎng)景(代理地址+后綴) #################### # 請(qǐng)求路徑為:http://127.0.0.1:8080/api/getUser 實(shí)際代理為: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; #后臺(tái)可以獲取到完整的ip+端口號(hào) proxy_set_header X-Real-IP $remote_addr; #后臺(tái)可以獲取到用戶訪問(wèn)的真實(shí)ip地址 } # 請(qǐng)求路徑為:http://127.0.0.1:8080/api/getUser 實(shí)際代理為:http://127.0.0.1:8000/usergetUser location ^~/api/ { proxy_pass http://127.0.0.1:8000/user; proxy_set_header Host $http_host; #后臺(tái)可以獲取到完整的ip+端口號(hào) proxy_set_header X-Real-IP $remote_addr; #后臺(tái)可以獲取到用戶訪問(wèn)的真實(shí)ip地址 } #################### 第四種場(chǎng)景(代理地址+后綴+斜杠) #################### # 請(qǐng)求路徑為:http://127.0.0.1:8080/api/getUser 實(shí)際代理為: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; #后臺(tái)可以獲取到完整的ip+端口號(hào) proxy_set_header X-Real-IP $remote_addr; #后臺(tái)可以獲取到用戶訪問(wèn)的真實(shí)ip地址 } # 請(qǐng)求路徑為:http://127.0.0.1:8080/api/getUser 實(shí)際代理為: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; #后臺(tái)可以獲取到完整的ip+端口號(hào) proxy_set_header X-Real-IP $remote_addr; #后臺(tái)可以獲取到用戶訪問(wèn)的真實(shí)ip地址 } }
6.演示前端項(xiàng)目如何部署nginx
server { listen 8090; server_name localhost; # 默認(rèn)訪問(wèn) # 部署路徑:/home/web/my_demo # 訪問(wèn)路徑為: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; } # 帶前綴的訪問(wèn) # 部署路徑:/home/web/my_demo # 訪問(wèn)路徑為:http://localhost:8090/my_demo/ # 如果location路徑最后沒(méi)有配置斜杠,則瀏覽器輸入訪問(wèn)地址后,路徑最后會(huì)自動(dòng)拼一個(gè)斜杠 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; } } }
到此這篇關(guān)于nginx各種代理配置大全的文章就介紹到這了,更多相關(guān)nginx 代理配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
linux下Nginx+Tomcat負(fù)載均衡配置方法
這篇文章主要介紹了linux下Nginx+Tomcat負(fù)載均衡配置方法,需要的朋友可以參考下2016-09-09教你快速構(gòu)建一個(gè)基于nginx的web集群項(xiàng)目
本文教你快速構(gòu)建一個(gè)基于nginx的4/7層負(fù)載均衡的web集群項(xiàng)目,項(xiàng)目步驟本文給大家介紹介紹,對(duì)nginx web集群項(xiàng)目感興趣的朋友一起看看吧2021-11-11Nginx實(shí)現(xiàn)外網(wǎng)訪問(wèn)內(nèi)網(wǎng)的步驟詳解
外網(wǎng)瀏覽器與內(nèi)網(wǎng)是不通的,但是外網(wǎng)與中間過(guò)渡服務(wù)器是通的,中間過(guò)渡服務(wù)器與內(nèi)網(wǎng)服務(wù)器是通的,這樣在外網(wǎng)訪問(wèn)過(guò)渡服務(wù)器時(shí),過(guò)渡服務(wù)器再跳轉(zhuǎn)到后臺(tái)服務(wù)器,本文給大家介紹了Nginx外網(wǎng)訪問(wèn)內(nèi)網(wǎng)如何實(shí)現(xiàn)步驟,需要的朋友可以參考下2023-10-10通過(guò)Nginx的proxy_set_header設(shè)置請(qǐng)求頭無(wú)效的解決
這篇文章主要介紹了通過(guò)Nginx的proxy_set_header設(shè)置請(qǐng)求頭無(wú)效的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12Nginx啟用GZIP壓縮網(wǎng)頁(yè)傳輸方法(推薦)
Gzip壓縮我很早已經(jīng)就啟用了,不過(guò)從未與大家分享過(guò)。今天小編給大家分享Nginx啟用GZIP壓縮網(wǎng)頁(yè)傳輸方法,需要的朋友參考下吧2017-01-01解讀Nginx和Apache的特點(diǎn)與區(qū)別
這篇文章主要介紹了解讀Nginx和Apache的特點(diǎn)與區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03