nginx各種代理配置大全
以下展示不同情況下的配置:location路徑、root路徑、alias路徑、proxy_pass代理路徑。
通過這幾個配置路徑地址對比,建議location后面都帶上斜杠。
1. 基礎(chǔ)配置說明
# 進(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)文件,可以直接配置訪問名稱
location ^~/MP_verify_2g3uEjrB5B2LIbNl.txt {
alias /home/MP_verify_2g3uEjrB5B2LIbNl.txt;
}
# 微信支付校驗(yàn)文件,也可以通過正則配置
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 實(shí)際訪問為:/home/files/index.jpg
location ~^/files/ {
root /home/;
index index.html index.htm;
}
# 用alias方式,location中的路徑不會拼加到alias的地址后面
# 這請求路徑為:http://localhost:8080/files/index.jpg 實(shí)際訪問為:/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 實(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; #后臺可以獲取到完整的ip+端口號
proxy_set_header X-Real-IP $remote_addr; #后臺可以獲取到用戶訪問的真實(shí)ip地址
}
# 請求路徑為: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; #后臺可以獲取到完整的ip+端口號
proxy_set_header X-Real-IP $remote_addr; #后臺可以獲取到用戶訪問的真實(shí)ip地址
}
#################### 第二種場景(代理地址+斜杠) ####################
# 請求路徑為: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; #后臺可以獲取到完整的ip+端口號
proxy_set_header X-Real-IP $remote_addr; #后臺可以獲取到用戶訪問的真實(shí)ip地址
}
# 請求路徑為: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; #后臺可以獲取到完整的ip+端口號
proxy_set_header X-Real-IP $remote_addr; #后臺可以獲取到用戶訪問的真實(shí)ip地址
}
#################### 第三種場景(代理地址+后綴) ####################
# 請求路徑為: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; #后臺可以獲取到完整的ip+端口號
proxy_set_header X-Real-IP $remote_addr; #后臺可以獲取到用戶訪問的真實(shí)ip地址
}
# 請求路徑為: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; #后臺可以獲取到完整的ip+端口號
proxy_set_header X-Real-IP $remote_addr; #后臺可以獲取到用戶訪問的真實(shí)ip地址
}
#################### 第四種場景(代理地址+后綴+斜杠) ####################
# 請求路徑為: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; #后臺可以獲取到完整的ip+端口號
proxy_set_header X-Real-IP $remote_addr; #后臺可以獲取到用戶訪問的真實(shí)ip地址
}
# 請求路徑為: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; #后臺可以獲取到完整的ip+端口號
proxy_set_header X-Real-IP $remote_addr; #后臺可以獲取到用戶訪問的真實(shí)ip地址
}
}6.演示前端項(xiàng)目如何部署nginx
server {
listen 8090;
server_name localhost;
# 默認(rèn)訪問
# 部署路徑:/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;
}
}
}到此這篇關(guān)于nginx各種代理配置大全的文章就介紹到這了,更多相關(guān)nginx 代理配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
linux下Nginx+Tomcat負(fù)載均衡配置方法
這篇文章主要介紹了linux下Nginx+Tomcat負(fù)載均衡配置方法,需要的朋友可以參考下2016-09-09
教你快速構(gòu)建一個基于nginx的web集群項(xiàng)目
本文教你快速構(gòu)建一個基于nginx的4/7層負(fù)載均衡的web集群項(xiàng)目,項(xiàng)目步驟本文給大家介紹介紹,對nginx web集群項(xiàng)目感興趣的朋友一起看看吧2021-11-11
Nginx實(shí)現(xiàn)外網(wǎng)訪問內(nèi)網(wǎng)的步驟詳解
外網(wǎng)瀏覽器與內(nèi)網(wǎng)是不通的,但是外網(wǎng)與中間過渡服務(wù)器是通的,中間過渡服務(wù)器與內(nèi)網(wǎng)服務(wù)器是通的,這樣在外網(wǎng)訪問過渡服務(wù)器時,過渡服務(wù)器再跳轉(zhuǎn)到后臺服務(wù)器,本文給大家介紹了Nginx外網(wǎng)訪問內(nèi)網(wǎng)如何實(shí)現(xiàn)步驟,需要的朋友可以參考下2023-10-10
通過Nginx的proxy_set_header設(shè)置請求頭無效的解決
這篇文章主要介紹了通過Nginx的proxy_set_header設(shè)置請求頭無效的解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
解讀Nginx和Apache的特點(diǎn)與區(qū)別
這篇文章主要介紹了解讀Nginx和Apache的特點(diǎn)與區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03

