服務器nginx 499錯誤的解決班有哪些,你知道么?

    問題描述:

    Nginx 服務器大量499報錯


    220.181.165.136 - - [18/May/2015:10:31:02 +0800] "POST /v1/jobsHTTP/1.1" 499 0 "" "bdHttpRequest/1.0.0"

    115.239.212.7 - - [18/May/2015:10:31:03 +0800] "GET /v1/job/643309e3-dc73-4025-aa69-c9405c1d818fHTTP/1.1" 499 /?tn=91638679_hao_pg&s_j=1""Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko"

    140.207.202.187 - - [18/May/2015:10:30:58 +0800] "POST/v3/violations HTTP/1.1" 499 0 "-" "-"

    42.236.10.71 - - [18/May/2015:10:30:59 +0800] "POST /v3/violationsHTTP/1.1" 499 0 "-" "-"

    106.120.173.17 - - [18/May/2015:10:30:58 +0800] "POST/v3/violations HTTP/1.1" 499 0 "-" "Mozilla/5.0 (Windows NT6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131Safari/537.36"

    180.97.35.164 - - [18/May/2015:10:30:52 +0800] "GET/v1/job/f86bdecc-2a61-4a42-bb7b-aa794b77f89b HTTP/1.1" 499 /s?word=%E5%8D%81%E5%A0%B0%E5%A4%A9%E6%B0%94&tn=sitehao123&ie=utf-8""Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"


    問題分析:

    1 499出現(xiàn)的原因


    google定義:

    499 / ClientClosed Request

    An Nginx HTTP server extension. This codeis introduced to log the case when the connection is closed by client whileHTTP server is processing its request, making server unable to send the HTTP header back


    維基百科定義:

    499Client Closed Request (Nginx)

    Used in Nginx logs to indicate when the connection has been closed by client while the server is still processing itsrequest, making server unable to send a status code back


    Nginx源碼:

    grep一下nginx源碼,定義在ngx_request_t.h :

    /*

    * HTTP does notdefine the code for the case when a client closed

    * the connectionwhile we are processing its request so we introduce

    * own code to logsuch situation when a client has closed the connection

    * before we even tryto send the HTTP header to it

    */

    #define NGX_HTTP_CLIENT_CLOSED_REQUEST 499


    這是nginx定義的一個狀態(tài)碼,用于表示這樣的錯誤:服務器返回http頭之前,客戶端就提前關閉了http連接

    繼續(xù)grep :



    這很有可能是因為服務器端處理的時間過長,客戶端“不耐煩”了。

    要解決此問題,就需要在程序上面做些優(yōu)化了。

    再grep下“NGX_HTTP_CLIENT_CLOSED_REQUEST”,發(fā)現(xiàn)目前這個狀態(tài)值只在ngx_upstream中賦值

    upstream在以下幾種情況下會返回499:

    (1)upstream 在收到讀寫事件處理之前時,會檢查連接是否可用:

    ngx_http_upstream_check_broken_connection,

    if (c->error) { //connecttion錯誤

    ……

    if (!u->cacheable) { //upstream的cacheable為false,這個值跟http_cache模塊的設置有關。指示內容是否緩存。

    ngx_http_upstream_finalize_request(r, u, NGX_HTTP_CLIENT_CLOSED_REQUEST);

    }

    }

    如上代碼,當連接錯誤時會返回499。

    (2)server處理請求未結束,而client提前關閉了連接,此時也會返回499。

    (3)在一個upstream出錯,執(zhí)行next_upstream時也會判斷連接是否可用,不可用則返回499。

    總之,這個錯誤的比例升高可能表明服務器upstream處理過慢,導致用戶提前關閉連接。而正常情況下有一個小比例是正常的。

    繼續(xù)分析:

    問題的**就是要排查為什么服務端處理時間過長

    可能問題:

    1 后臺python程序處理請求時間過長

    2 mysql慢查詢

    通過查看監(jiān)控:

    1 cpu和內存的使用,都在正常范圍

    2 后臺程序訪問正常

    3 MySQL沒有慢查詢

    結果:

    經(jīng)過詢問**后得知,這個nginx為查詢違章的api,用戶提交查詢后, python就去數(shù)據(jù)庫或者交通局的網(wǎng)站查詢。這個查詢會有消耗一定的時間,所以,用戶會主動斷開連接

    解決問題:

    proxy_ignore_client_abort on; #讓代理服務端不要主動關閉客戶端的連接。

    默認 proxy_ignore_client_abort 是關閉的,此時在請求過程中如果客戶端端主動關閉請求或者客戶端網(wǎng)絡斷掉,那么 Nginx 會記錄 499,同時 request_time 是「后端已經(jīng)處理」的時間,而upstream_response_time 為“-“ (已驗證)。

    如果使用了 proxy_ignore_client_abort on ;

    那么客戶端主動斷掉連接之后,Nginx 會等待后端處理完(或者**時),然后記錄「后端的返回信息」到日志。所以,如果后端返回 200,就記錄 200 ;如果后端放回 5XX ,那么就記錄 5XX 。

    如果**時(默認60s,可以用 proxy_read_timeout 設置),Nginx 會主動斷開連接,記錄 504

    注:只在做反向代理的時候加入,作為其他服務器的時候,關閉為好,默認設置是關閉的!

    ?著作權歸作者所有:來自51CTO博客作者ssp4599815的原創(chuàng)作品


    深圳道通存儲技術有限公司專注于服務器硬盤批發(fā)價格,顯卡內存條代理經(jīng)銷商,挖礦SSD硬盤進貨渠道等

  • 詞條

    詞條說明

  • 固態(tài)硬盤品牌推薦,買什么牌子的合適

    1、三星性能:5價格:1品牌:5售后:5三星是半導體存儲產(chǎn)業(yè)的*代表,在固態(tài)硬盤方面,三星能夠自研主控和閃存,性能也不錯,市場份額一直很高,但是三星的固態(tài)硬盤價格也是所有品牌中較高的,性價比很低。2、Intel性能:4價格:2品牌:5售后:5Intel的售價也不低,但是比三星算是低了一點,在消費級產(chǎn)品上,Intel的固態(tài)硬盤性能一向很高,售后服務也不錯。如果注重數(shù)據(jù)的安全和固態(tài)硬盤的穩(wěn)定性的話,

  • 思科UCSC-DBUN-C240-311價格是多少_思科UCSC-DBUN-C240-311怎么樣

    產(chǎn)品類型:機架式產(chǎn)品結構:2UCPU型號:Intel Xeon E5-2609 CPU主頻:2.4GHz標配CPU數(shù)目:1個內存類型:DDR3查看詳細參數(shù)>>思科UCSC-DBUN-C240-311運行安全、穩(wěn)定,管理能力便捷。7x24小時不間斷提供可靠的服務,遠離宕機、病毒等不安全因素。思科UCSC-DBUN-C240-311是服務器領域的優(yōu)質產(chǎn)品,不是簡單的拼湊參數(shù),而是關注用戶的

  • 浪潮NF5270M4(E5-2609v3/8G/1TB)價格是多少_浪潮NF5270M4(E5-2609v3/8G/1TB)怎么樣

    CPU系列:Intel,至強處理器E5系列CPU型號:Intel 至強E5-2609 v3CPU主頻:1.9GHz內存類型:RDIMM DDR4標配內存:8G硬盤接口類型:SATA,3.5“(企業(yè)級)查看詳細參數(shù)>>這款浪潮NF5270M4(E5-2609v3/8G/1TB)是一款性能很穩(wěn)定的服務器,能夠積極響應服務請求并進行處理,處理能力、穩(wěn)定性、可靠性、安全性、可擴展性、可管理性等

  • 電腦熱重啟到了“正在啟動Windows”界面后停止不前

    故障描述: 電腦在使用過程中,突然局部失去響應,如可以打開“我的電腦”,但是無法打開視頻文件,等等,從開始菜單重啟后,一直停留在“正在關機”的界面。 按重啟鍵后,硬件自檢通過,發(fā)出清脆的“嘀”的一聲,然后顯示器開始有信號輸出,然后到了“正在啟動Windows”界面后停止不前(從按下重啟鍵到出現(xiàn)此見面,明顯不太正常,比正常情況下慢了許多,特別是**次重啟,較慢)。 從光盤啟動,選擇進入PE系統(tǒng),快到

聯(lián)系方式 聯(lián)系我時,請告知來自八方資源網(wǎng)!

公司名: 深圳道通存儲技術有限公司

聯(lián)系人: 趙先生

電 話:

手 機: 18681551725

微 信: 18681551725

地 址: 廣東深圳福田區(qū)

郵 編:

網(wǎng) 址: dtstor.b2b168.com

八方資源網(wǎng)提醒您:
1、本信息由八方資源網(wǎng)用戶發(fā)布,八方資源網(wǎng)不介入任何交易過程,請自行甄別其真實性及合法性;
2、跟進信息之前,請仔細核驗對方資質,所有預付定金或付款至個人賬戶的行為,均存在詐騙風險,請?zhí)岣呔瑁?
    聯(lián)系方式

公司名: 深圳道通存儲技術有限公司

聯(lián)系人: 趙先生

手 機: 18681551725

電 話:

地 址: 廣東深圳福田區(qū)

郵 編:

網(wǎng) 址: dtstor.b2b168.com

    相關企業(yè)
    商家產(chǎn)品系列
  • 產(chǎn)品推薦
  • 資訊推薦
關于八方 | 八方幣 | 招商合作 | 網(wǎng)站地圖 | 免費注冊 | 一元廣告 | 友情鏈接 | 聯(lián)系我們 | 八方業(yè)務| 匯款方式 | 商務洽談室 | 投訴舉報
粵ICP備10089450號-8 - 經(jīng)營許可證編號:粵B2-20130562 軟件企業(yè)認定:深R-2013-2017 軟件產(chǎn)品登記:深DGY-2013-3594
著作權登記:2013SR134025
Copyright ? 2004 - 2025 b2b168.com All Rights Reserved