Nginx負載均衡引起的網站不可用

Nginx負載均衡引起的網站不可用

二,看看前端nginx負載均衡器。

我們來看一下nginx的配置文件


乍一看,好像也沒什麼問題。經過仔細的檢查。發現問題,

我們來看一下,nginx配置文件里的這一句。

proxy_next_upstream error timeout http_503 http_500 http_502 http_504;

這句的意思,就是說
當遇到 503 500502504錯誤時,跳到下一個節點。我在想,後端的lighttpd機器報很多500錯誤,雖然不影響,但是nginx 會跳到下一個節點,並在upstream裡面fail_timeout值的時間內將此節點標記不可用。如果下一個節點還是500呢,又會標記不可用,那就完,兩個點都不可用,那不全掛嗎。

為證實我的想法,
我找一個報警的時間段。看一下後端的lighttpd日誌。


我們對比看一下,發現在 16.52 09- 10秒的時候。都出現500錯誤。

我們看一下nginx在這個時間的錯誤日誌


我們看到
16 5211秒的時候, nginx 出現報錯,
報錯的內容為 no live upstreams,意思就是沒有後端機器。也就是說,後端兩台都不可用。

找到錯誤原因,那就好解決。

第一,聯繫項目組找到500錯誤的原因。並解決。

第二,修改nginx的配置文件,
proxy_next_upstream error timeout http_503 http_500 http_502 http_504;  這段里,將 http_500 去掉。意思也就是說,當出現500錯誤的時候,對nginx來不不影響,該幹嘛還幹嘛。

修改後,果然再沒有報警問題。

以下文章點擊率最高

Loading…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營

發表評論

您的電子郵箱地址不會被公開。 必填項已用*標註