nginx 499

1.源碼裏的定義:
ngx_string(ngx_http_error_495_page), / 495, https certificate error /
 ngx_string(ngx_http_error_496_page), / 496, https no certificate /
 ngx_string(ngx_http_error_497_page), / 497, http to https /
 ngx_string(ngx_http_error_404_page), / 498, canceled /
 ngx_null_string, / 499, client has closed connection /
可以看出是客戶端關閉連接,服務端返回的狀態碼。
網上有說是提交請求過於頻繁,服務器返回的。由於個人覺得這個理由過於牽強,就沒做測試!

2.模擬
通過curl提交100次請求。在沒提交完時,中斷請求。服務器端查看日誌:

 129.0.1.209 - - [24/May/2018:15:09:49 +0800] "GET /sso/resources/dep/layer-v2.1/skin/layer.css HTTP/1.1" 499 0 "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2"

3.http 499 與 proxy_ignore_client_abort
proxy_ignore_client_abort 參數默認是關閉的。如果客戶端主動關閉請求或者客戶端網絡斷掉,那麼 Nginx 會記錄 499,同時 request_time 是 「後端已經處理」的時間,而 upstream_response_time 爲 “-“ (已驗證)。
如果使用了 proxy_ignore_client_abort on ;
那麼客戶端主動斷掉連接之後,Nginx 會等待後端處理完(或者超時),然後 記錄 「後端的返回信息」 到日誌。所以,如果後端 返回 200, 就記錄 200 ;如果後端放回 5XX ,那麼就記錄 5XX 。
如果超時(默認60s,可以用 proxy_read_timeout 設置),Nginx 會主動斷開連接,記錄 504。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章