nginx proxy_pass 和 proxy_redirect
proxy_pass:充當代理伺服器,轉發請求
proxy_redirect:修改301或者302轉發過程中的Location。預設值為proxy_redirect default。
例:
location / {
proxy_pass http://192.168.8.46:8080/; #/結尾
#proxy_redirect default #此為預設值,加不加都一樣。
}
這樣代理到其它機器的8080埠,訪問的時候都沒問題,
Location: http://192.168.8.46/haha4/,瀏覽器的url位址列也是http://192.168.8.46/haha4/
若:
location / {
proxy_pass http://192.168.8.46:8080;#去掉/
proxy_redirect off #修改預設值default為off
}
如果去掉最後的/以後,curl -I http://192.168.8.46/haha4 訪問
Location: http://192.168.8.46:8080/haha4/
瀏覽器訪問顯示的位址列為http://192.168.8.46:8080/haha4/,(如果還是之前的,需要先刪快取)
可以看到,真實的Location地址全部暴露出來的,這個時候就需要使用proxy_redirect修改這個Location
配置如下:
location / {
proxy_pass http://192.168.8.46:8080;
proxy_redirect http://192.168.8.46:8080/haha4/ http://192.168.8.46/haha4/;
}
這樣,就能修改Location的地址,Location: http://192.168.8.46/haha4/,在瀏覽器裡也是如此,就不會暴露埠號等資訊,
當然,你還可以把Location弄到其它網站上去,例如
proxy_redirect http://192.168.8.46:8080/haha4/ ;
然後瀏覽器就跳過去了。
總結:
一切幕後黑手就是
proxy_pass http://192.168.8.46:8080; 不加/結尾,只要把/加上,proxy_redirect 用預設值就OK了。
proxy_redirect:修改301或者302轉發過程中的Location。預設值為proxy_redirect default。
例:
location / {
proxy_pass http://192.168.8.46:8080/; #/結尾
#proxy_redirect default #此為預設值,加不加都一樣。
}
這樣代理到其它機器的8080埠,訪問的時候都沒問題,
Location: http://192.168.8.46/haha4/,瀏覽器的url位址列也是http://192.168.8.46/haha4/
若:
location / {
proxy_pass http://192.168.8.46:8080;#去掉/
proxy_redirect off #修改預設值default為off
}
如果去掉最後的/以後,curl -I http://192.168.8.46/haha4 訪問
Location: http://192.168.8.46:8080/haha4/
瀏覽器訪問顯示的位址列為http://192.168.8.46:8080/haha4/,(如果還是之前的,需要先刪快取)
可以看到,真實的Location地址全部暴露出來的,這個時候就需要使用proxy_redirect修改這個Location
配置如下:
location / {
proxy_pass http://192.168.8.46:8080;
proxy_redirect http://192.168.8.46:8080/haha4/ http://192.168.8.46/haha4/;
}
這樣,就能修改Location的地址,Location: http://192.168.8.46/haha4/,在瀏覽器裡也是如此,就不會暴露埠號等資訊,
當然,你還可以把Location弄到其它網站上去,例如
proxy_redirect http://192.168.8.46:8080/haha4/ ;
然後瀏覽器就跳過去了。
總結:
一切幕後黑手就是
proxy_pass http://192.168.8.46:8080; 不加/結尾,只要把/加上,proxy_redirect 用預設值就OK了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21220384/viewspace-2139314/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- docker – nginx – proxy_pass + proxy_redirectDockerNginx
- nginx location 和proxy_pass 代理說明Nginx
- Nginx location 和 proxy_pass路徑配置詳解Nginx
- Nginx反向代理中使用proxy_redirect重定向urlNginx
- nginx的反向代理proxy_pass指令Nginx
- Nginx引數proxy_pass細說Nginx
- Nginx之location中反向代理proxy_pass配置Nginx
- Nginx的proxy_pass簡單使用記錄Nginx
- Nginx rewrite 規則 與 proxy_pass 實現Nginx
- Nginx中proxy_pass的斜槓(/)問題Nginx
- nginx配置proxy_pass後斜槓的訪問Nginx
- Nginx伺服器的反向代理proxy_pass配置方法講解Nginx伺服器
- Nginx 實戰-02-nginx proxy_pass 服務代理訪問 使用筆記 ubuntu nodejsNginx筆記UbuntuNodeJS
- 記錄一次 Nginx 配置 proxy_pass 後 返回404問題Nginx
- nginx配置proxy_pass後,訪問時路徑丟失怎麼辦Nginx
- nginx location匹配後proxy_pass給後端server後404 一探Nginx後端Server
- Nginx伺服器配置---反向代理服務時proxy_pass的轉發規則Nginx伺服器
- Apache和 nginxApacheNginx
- Nginx和RedmineNginx
- nginx面試題-nginx和apache的區別Nginx面試題Apache
- FastDFS安裝fastdfs-nginx-module和nginxASTNginx
- 【Nginx】Nginx反向代理和負載均衡部署Nginx負載
- 我眼中的 Nginx(一):Nginx 和位運算Nginx
- Nginx 原理和架構Nginx架構
- nginx 安裝和使用Nginx
- HTTP HSTS協議和 nginxHTTP協議Nginx
- Nginx 工作模式和程式模型Nginx模式模型
- Nginx下載和安裝Nginx
- nginx和apache的區別NginxApache
- PHP-FPM和nginx配置PHPNginx
- NGINX的配置和基本使用Nginx
- Nginx和Perl的結合Nginx
- Nginx和php的結合NginxPHP
- nginx的編譯和配置Nginx編譯
- Nginx R31 doc-08-NGINX 和 NGINX Plus 作為 Web 伺服器NginxWeb伺服器
- Nginx 基礎理解和安裝Nginx
- 原始碼安裝Nginx和PHP原始碼NginxPHP
- 偽靜態配置apache 和nginxApacheNginx