處理辦法
反向**
將apache更換成nginx,推送伺服器只有乙個唯讀json介面,切換後除錯方便,出錯概率極低。
失效策略
伺服器500錯誤的參考文章:
如果後端tomcat伺服器處理超時,則nginx不請求下乙個tomcat節點,而是直接返回。nginx預設,會重複嘗試所有的節點以後,才會返回給瀏覽器錯誤。例如:在location設定引數(預設值也是如此):
其中有乙個引數值 timeout,這個引數代表如果超時,則嘗試其他節點。因此要去掉這個引數,修改後如下
超時時間
因為通過效能測試,響應平均時間是4ms,因此設定1s的等待時間足矣。所以後端一旦出現超時,雪崩效應即將產生,**給別的節點也是沒用的,所以此處的降級方案啟動,直接返回錯誤即可。在location設定引數:proxy_read_timeout;
這個引數表示nginx等待單個後端應用伺服器響應的等待時間。最終配置如下
proxy_read_timeout 1;
最終結論
proxy_read_timeout 1;
看圖陷阱
這個設定和上面的結論就差個timeout,這樣設定的話,假設乙個nginx後面掛了40個tomcat,那麼瀏覽器要等40秒才能超時!切記。
參考文章
nginx的超時設定
tomcat超時時間
Nginx系列(八 nginx日誌)
remote addr,http x forwarded for 記錄客戶端ip位址 remote user 記錄客戶端使用者名稱 request 記錄請求的url和http協議 status 記錄請求狀態 body bytes sent 傳送給客戶端的位元組數,不包括響應頭的大小 該變數與apac...
Nginx系列(十三 nginx負載均衡)
負載均衡 upstream webserver 反向 server web伺服器 server location php 1.輪詢 預設 upstream webserver2.weight upstream webserver3.ip hash 解決session共享問題 upstream web...
Nginx系列 Nginx服務啟動不了
nginx服務有時起動不了了,原因是 埠為其它應用程式占用了,這時,我們需要檢視是哪個程式占用了它,可能是 的某個站點,或者tomat,apache等,都有可能,所以,我們需要檢視一下電腦 埠的使用情況,使用下面命令 netstat aon findstr 80 看一下結果 這時,我們並沒有看到本機...