問題:
兩層nginx做代理,第一層:nginx:將9087->代理到80端口,第二層:將80端口->流量打到我們的代碼上,結果在代碼中拿到的鏈接不帶9087端口,則代碼中發生跳轉的時候,會不帶端口,導致跳轉出錯?
原因:
因為第一層將9087打到80端口上,第二層拿到的請求鏈接的80端口是nginx默認端口,被nginx忽略了,如果不發生跳轉,沒有問題,一般發生跳轉,不論是相對還是絕對路徑,都不會帶9087端口號,這就導致跳轉出錯
解決:
既然已知是被nginx忽略了端口號,那改代碼就無濟於事,那就改nginx配置,讓他過來的時候把端口號帶上,一句簡單的配置即可解決
proxy_set_header Host $http_host;