2010-06-02 25 views
1

我有一個坐在nginx前端後面的Python龍捲風服務器。每隔一段時間,但不是每一次,我都會得到一個502錯誤。我看在nginx的訪問日誌,我看到:如何調試HTTP 502錯誤?

127.0.0.1 - - [02/Jun/2010:18:04:02 -0400] "POST /a/question/updates HTTP/1.1" 502 173 "http://localhost/tagged/python" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3" 

,並在錯誤日誌中:

2010/06/02 18:04:02 [error] 14033#0: *1700 connect() failed (111: Connection refused) 
while connecting to upstream, client: 127.0.0.1, server: _, 
request: "POST /a/question/updates HTTP/1.1", 
upstream: "http://127.0.0.1:8888/a/question/updates", host: "localhost", referrer: "http://localhost/tagged/python" 

我不認爲任何中的錯誤日誌龍捲風顯示。你將如何去調試呢?有什麼我可以放在Tornado或nginx配置來幫助調試嗎?

+0

大多數人會發現,這是nginx無法驗證上游頭文件(含內容的201)時的結果,或者記錄瞭如此多的錯誤(Notices)以至於打破了4k錯誤緩衝區。 – ppostma1 2014-01-09 16:56:26

回答

2

在我看來,來自錯誤日誌的行非常豐富。它表示連接被上游拒絕,它包含客戶端IP,Nginx服務器配置,請求線,主機名,上游URL和引用。

這很清楚你必須看着上游(或防火牆)找出原因。

如果您想了解Nginx如何處理請求,爲什麼選擇特定的服務器和位置部分 - 有一個美麗的「調試」模式。 (注意,你的Nginx二進制文件必須包含調試符號)。然後:

error_log /path/to/your/error.log debug; 

將打開所有請求的調試。在錯誤日誌中調試信息需要一些時間來習慣解釋它,但是值得努力。

請不要對高流量網站使用「原樣」!它會產生大量信息,您的錯誤日誌將會非常快速地增長。如果您需要在生產調試的請求,使用debug_connection指令:

events { 
    debug_connection 1.2.3.4; 
} 

原來的調試上只對特定的客戶端IP地址。