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_pass指令Nginx
- Nginx中proxy_pass的斜槓(/)問題Nginx
- Nginx之location中反向代理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伺服器配置---反向代理服務時proxy_pass的轉發規則Nginx伺服器
- 我眼中的 Nginx(一):Nginx 和位運算Nginx
- nginx面試題-nginx和apache的區別Nginx面試題Apache
- Nginx 原理和架構Nginx架構
- PHP-FPM和nginx配置PHPNginx
- HTTP HSTS協議和 nginxHTTP協議Nginx
- Nginx 工作模式和程式模型Nginx模式模型
- Nginx下載和安裝Nginx
- nginx和apache的區別NginxApache
- NGINX的配置和基本使用Nginx
- Nginx R31 doc-08-NGINX 和 NGINX Plus 作為 Web 伺服器NginxWeb伺服器
- Linux上安裝Nginx依賴環境和庫、Nginx安裝,Nginx服務命令LinuxNginx
- github-schenkd/nginx-ui:Nginx UI可直接透過介面訪問和修改Nginx配置GithubNginxUI
- github-schenkd/nginx-ui:Nginx UI可直接通過介面訪問和修改Nginx配置GithubNginxUI
- nginx 502 和 504 超時演示Nginx
- Nginx 基礎理解和安裝Nginx
- 使用 Nginx 編譯 Sass 和 ScssNginx編譯CSS
- Nginx(alias 和 root的區別)Nginx
- Nginx正向代理和反向代理配置Nginx
- 偽靜態配置apache 和nginxApacheNginx
- nginx啟動命令和停止命令。Nginx
- 原始碼安裝Nginx和PHP原始碼NginxPHP
- Nginx實現原理master和workerNginxAST
- Nginx的安裝和多域名配置Nginx
- Nginx中root和alias的區別Nginx
- 使用 Nginx 和 Gunicorn 部署 Django 部落格NginxDjango
- nginx 和 PHP-fpm 的互動NginxPHP
- Nginx的幾個常用配置和技巧Nginx