upstream sent invalid header while reading response header from upstream 錯誤解決
阿新 • • 發佈:2019-02-19
由於最近線上出現502錯誤比較蛋疼,所以重新把nginx詳細配置做下說明,以此來查詢問題。
配置說明如下:nginx 配置 location / { proxy_next_upstream http_500 http_502 http_504 error timeout invalid_header; proxy_pass http://bak_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
proxy_next_upstream http_500 http_502 http_504 error timeout invalid_header;
#這個配置指定nginx在從一臺後端主機獲取資料時遇到何種錯誤時會轉到下一個後端伺服器,預設是error timeout 就是後端伺服器當機,網路出現問題之類的,timeout一般是網路阻塞,超時。
proxy_pass http://bak_server;
#轉發請求到後端伺服器
proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#以上三行的配置是同一個目的,後端伺服器獲得client的真實IP
#nginx並不會對X-Forwarded-For頭做任何的處理,除非使用者使用proxy_set_header 引數設定:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
$proxy_add_x_forwarded_for變數包含客戶端請求頭中的"X-Forwarded-For",與$remote_addr用逗號分開,如果沒有"X-Forwarded-For" 請求頭,則$proxy_add_x_forwarded_for等於$remote_addr。
$remote_addr變數的值是客戶端的IP
根據線上的錯誤
8990057 upstream sent invalid header while reading response header from upstream
所以註釋掉
invalid_header
變為:
proxy_next_upstream http_500 http_502 http_504 error timeout;
則一切正常了。