nginx做反向代理proxy_pass,proxy_redirect的使用


   |   |   

    今天用nginx作為trac的反代,發現一個問題,就是登入登出跳轉的時候是白頁,看了下網頁相應內容,發現相應的location是空的。查了一下發現是只單純用了proxy_pass,沒有使用proxy_redirect.
    假設前端url是example.com。后端server域名是in.com,那么后端server在返回refresh或location的時候,host為in.com,顯然這個信息直接返回給客戶端是不行的,需要nginx做轉換,這時可以設置:
    proxy_redirect http://in.com  /
    nginx會將host及port部分替換成自身的server_name及listen port。不過這種配置對server_name有多個值的情況下支持不好。
我們可以用nginx內部變量來解決這一問題:
    proxy_redirect http://in.com http://$host:$server_port


    搞定

    如果不設定的話,proxy_redirect默認是default屬性,官網例子是這樣介紹default的:

引用
location /one/ {
  proxy_pass       http://upstream:port/two/;
  proxy_redirect   default;
}

location /one/ {
  proxy_pass       http://upstream:port/two/;
  proxy_redirect   http://upstream:port/two/   /one/;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM