2017-07-26 295 views
0

我做proxy_pass當我的域名的URL看起來是這樣的:Nginx的proxy_pass沒有GET/POST參數

http://evil.corp/v666/this/is/my/url

,一切工作正常。

location ~^/v666/ { 
    proxy_pass http://evil.corp.lan; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $remote_addr; 
    proxy_set_header Host $host; 
} 

evil.corp.lan有第二個nginx,我正在接受請求。

但我希望域後削減部分「/ v666」,和代理只是我的網址的這一部分:

http://evil.corp/this/is/my/url

沒有「/ v666」

你能給我提示如何做到這一點?

+0

你的意思是用'/'替換任何URI。只需將其附加到'proxy_pass'指令即可。 –

+0

域名後面,剪掉/ v666部分,並保持網址的其餘部分不變。 – crashoverbike

+0

https://serverfault.com/a/586614/211028 –

回答

0

更改:

location /v666/ { 

proxy_pass http://evil.corp.lan:80/; 

幫助。

https://serverfault.com/a/725433/331458

它使用

位置/ v666/

否則,使用位置〜^/v666 /你最終得到的是非常重要的「proxy_pass」不能在由正則表達式給定的位置,或在命名位置內,或在「if」語句內,或在「限制_except「塊。

現在,它的工作原理! :)