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. 演示如何配置微信支付的校驗文件
server {
listen 80;
server_name localhost;
# 默認(rèn)根路徑
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;
# 默認(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)文章
Nginx?403?forbidden錯誤的原因以及解決方法
yum安裝nginx,安裝一切正常,但是訪問時報403 forbidden,下面這篇文章主要給大家介紹了關(guān)于Nginx?403?forbidden錯誤的原因以及解決方法,需要的朋友可以參考下2022-08-08
HAProxy和Nginx搭建負(fù)載均衡器的實現(xiàn)
負(fù)載均衡器是一個常用于分布式計算和網(wǎng)絡(luò)應(yīng)用中的系統(tǒng)組件,主要用于將客戶端的請求分發(fā)到多個后端服務(wù)器上,以實現(xiàn)高可用性、高性能和可擴(kuò)展性,本文主要介紹了HAProxy和Nginx搭建負(fù)載均衡器的實現(xiàn),感興趣的可以了解一下,感興趣的可以了解一下2023-11-11
Nginx內(nèi)網(wǎng)單機(jī)反向代理的實現(xiàn)
本文主要介紹了Nginx內(nèi)網(wǎng)單機(jī)反向代理的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11
解決systemctl reload nginx重啟Nginx服務(wù)報錯:Job for&n
文章描述了通過`systemctl status nginx.service`發(fā)現(xiàn)Nginx服務(wù)未啟動,啟動失敗的原因可能是端口號被占用,使用`netstat -ntlp | grep 80`命令找到了占用80端口的進(jìn)程(PID為7008),通過`kill 7008`停止了該進(jìn)程,然后重新啟動Nginx2025-01-01
利用nginx+lua+redis實現(xiàn)反向代理方法教程
這篇文章主要給大家介紹了利用nginx+lua+redis實現(xiàn)反向代理方法教程,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-05-05

