Nginx伺服器的反向代理proxy_pass配置方法講解
Nginx伺服器的反向代理proxy_pass配置方法講解
Nginx的配置還是比較簡單的,如:
1
2
3
4
|
或者可以
1
2
3
4
|
Apache2的反向代理的配置是:
1
|
ProxyPass /ysz/ |
然而,如果要配置一個相對複雜的反向代理
Nginx相對Apache2就要麻煩一些了
比如,將url中以/wap/開頭的請求轉發到後臺對應的某臺server上
可以再Nginx裡設定一個變數,來臨時儲存/wap/後面的路徑資訊
1
2
3
4
5
6
7
8
9
|
location ^~ /wap/ { if ($request_uri ~ /wap/(d+)/(.+)) { set $bucketid $1; set $params $2; } proxy_pass } |
也可以首先rewrite一下,然後再代理:
1
2
3
4
|
或者
1
2
3
4
|
注意上面最後的?$args,表明把原始url最後的get引數也給代理到後臺
如果在proxy_pass中使用了變數(不管是主機名變數$1或後面的$2變數),則必須得加這段程式碼
但如果pass_proxy後沒用任何變數,則不需要加,它預設會把所有的url都給代理到後臺,如:
1
2
3
4
|
而Apache2相對就簡單多了:
1
2
3
4
5
6
|
ProxyPassMatch ^/wap/(.*)$ if ($host ~* www.(.*)){ set $host_without_www $1;
rewrite (.*)$
}
|
url的/問題
在nginx中配置proxy_pass時,當在後面的url加上了/,相當於是絕對根路徑,則nginx不會把location中匹配的路徑部分代理走;如果沒有/,則會把匹配的路徑部分也給代理走。
下面四種情況分別用http://192.168.1.4/proxy/test.html 進行訪問。
第一種:
1
2
3
|
會被代理到http://127.0.0.1:81/test.html 這個url
第二我們(相對於第一種,最後少一個 /)
1
2
3
|
會被代理到http://127.0.0.1:81/proxy/test.html 這個url
第三種:
1
2
3
|
會被代理到http://127.0.0.1:81/ftlynx/test.html 這個url。
第四種情況(相對於第三種,最後少一個 / ):
1
2
3
|
會被代理到http://127.0.0.1:81/ftlynxtest.html 這個url
上面的結果都是本人結合日誌檔案測試過的。從結果可以看出,應該說分為兩種情況才正確。即http://127.0.0.1:81 (上面的第二種) 這種和 http://127.0.0.1:81/…. (上面的第1,3,4種) 這種。
相關文章
- Nginx之location中反向代理proxy_pass配置Nginx
- nginx的反向代理proxy_pass指令Nginx
- Nginx 配置:反向代理Nginx
- Nginx 配置反向代理Nginx
- Nginx配置檔案(反向代理伺服器)Nginx伺服器
- Nginx之路--配置正向代理、反向代理Nginx
- Nginx正向代理和反向代理配置Nginx
- yapi 的 nginx 反向代理配置文字APINginx
- nginx反向代理配置去除字首Nginx
- tomcat 配置nginx 反向代理TomcatNginx
- 配置Nginx反向代理TomcatNginxTomcat
- nginx反向代理配置如何去除字首Nginx
- Nginx搭建反向代理伺服器過程詳解Nginx伺服器
- proxy_pass反向代理配置中url後面加不加/的說明
- Nginx專題(1):Nginx之反向代理及配置Nginx
- Nginx反向代理Nginx
- nginx 反向代理Nginx
- docker 安裝 nginx 並配置反向代理DockerNginx
- nginx正向代理、反向代理Nginx
- Nginx負載均衡反向代理伺服器Nginx負載伺服器
- nginx的https和http共存反向代理配置NginxHTTP
- [Nginx] TCP 反向代理NginxTCP
- Nginx 反向代理 websocketNginxWeb
- 7、Lunix下nginx反向代理伺服器域名解析配置實操Nginx伺服器
- 一段萬能的nginx介面反向代理配置Nginx
- nginx詳解反向代理負載均衡Nginx負載
- Nginx伺服器的使用與反向代理負載均衡Nginx伺服器負載
- docker下nginx反向代理和負載均衡配置DockerNginx負載
- nginx 反向代理做域名轉發簡單配置Nginx
- nginx+tomcat反向代理負載均衡配置NginxTomcat負載
- 阿里雲配置 node.js + Nginx 反向代理阿里Node.jsNginx
- nginx配置web服務|反向代理|負載均衡NginxWeb負載
- nginx location 和proxy_pass 代理說明Nginx
- nginx 反向代理 swoole 使用Nginx
- nginx 反向代理設定Nginx
- Nginx四層反向代理Nginx
- Nginx 反向代理的進本配置以及Vue-router history模式配置NginxVue模式
- nginx: 高效能http和反向代理伺服器NginxHTTP伺服器