<sub id="zrjbj"></sub>

        <track id="zrjbj"><output id="zrjbj"></output></track>

            <form id="zrjbj"><ins id="zrjbj"><output id="zrjbj"></output></ins></form>

            <i id="zrjbj"><i id="zrjbj"><progress id="zrjbj"></progress></i></i>
            <track id="zrjbj"></track><form id="zrjbj"></form>
            <delect id="zrjbj"><del id="zrjbj"></del></delect>

            新聞資訊
            行業資訊
            服務器訪問出現499錯誤是什么?
            2021-05-26 16:32:52
            摘要: ? ? 499錯誤是什么?http狀態碼是用來表示web服務器響應http請求狀態的的數字代碼。每當web客戶端向服務器發送一個http請求時,web服務器都會返回一個狀態響應代碼。這個狀態碼是一個3位數字代碼,作用是告知web客戶端此次的請求是否成功,或是采取其他的動作方式。下面我們來學習Nginx 499錯誤的原因及解決方法。

            499錯誤是什么?http狀態碼是用來表示web服務器響應http請求狀態的的數字代碼。每當web客戶端向服務器發送一個http請求時,web服務器都會返回一個狀態響應代碼。這個狀態碼是一個3位數字代碼,作用是告知web客戶端此次的請求是否成功,或是采取其他的動作方式。下面我們來學習Nginx 499錯誤的原因及解決方法。


            日志記錄中HTTP狀態碼出現499錯誤有多種情況,比如nginx反代到一個永遠打不開的后端,日志狀態記錄就會是499、發送字節數是0。


            經常有用戶反饋網站系統時好時壞,因為線上的產品很長時間沒有修改,所以前端程序的問題基本上可以排除,于是就想著是Get方式調用的接口不穩定,問了相關人員,說沒有問題,為了拿到確切證據,于是我問相關人員要了nginx服務器的日志文件(awstats日志),分析后發現日志中很多錯誤碼為499的錯誤,約占整個日志文件的1%,而它只占全部報錯的70%左右),那么所有報錯加起來就要超過1%了,這個量還是特別大的。

            499錯誤是什么?讓我們看看NGINX的源碼中的定義:

            499錯誤是什么?讓我們看看NGINX的源碼中的定義:


            400 Bad Request:該狀態碼表示請求報文中存在語法錯誤。

            401 Unauthorized:告訴客戶端,要想獲取資源的訪問權,首先要對自己認證。

            402 Payment Required:此狀態碼還未被使用,保留中。

            403 Forbidden:表明服務器拒絕了這個來自客戶端的請求。一般不會說明緣由。

            404 Not Found:表明服務器上無法找到請求的資源。一般還會包含一個實體(比如404頁面),以便客戶端給用戶看。

            405 Method Not Allowed:客戶端發起的請求中帶有所有請求的URL不支持的方法。同時應該在響應中包含Allow首部,以告訴客戶端可以使用什么方法。

            406 Not Accepted:客戶端可以在請求首部中指明自己愿意接收什么類型的實體,但是當服務器沒有這種類型實體的時候,會發送406.

            407 proxy Authentication Required:與401類似,但是用于要求對資源進行認證的代理服務器。

            408 Request TImeout:如果客戶端完成請求所話的時間太長,服務器返回此代碼并關閉連接。


            409 Conflict:用于說明請求可能在資源上引發一些沖突。服務器擔心請求會引發沖突時,發送此代碼。并在響應的主體中描述沖突。


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


            nginx 499錯誤的原因


            Nginx 499錯誤的原因及解決方法


            打開Nginx的access.log發現在最后一次的提交是出現了HTTP1.1 499 0 -這樣的錯誤,在百度搜索nginx 499錯誤,結果都是說客戶端主動斷開了連接。


            但經過我的測試這顯然不是客戶端的問題,因為使用端口+IP直接訪問后端服務器不存在此問題,后來測試nginx發現如果兩次提交post過快就會出現499的情況,看來是nginx認為是不安全的連接,主動拒絕了客戶端的連接.


            但搜索相關問題一直找不到解決方法,最后終于在google上搜索到一英文論壇上有關于此錯誤的解決方法:


            proxy_ignore_client_abort on;

            Don't know if this is safe.


            就是說要配置參數 proxy_ignore_client_abort on;


            表示代理服務端不要主要主動關閉客戶端連接。


            以此配置重啟nginx,問題果然得到解決。只是安全方面稍有欠缺,但比總是出現找不到服務器好多了。


            還有一種原因是 我后來測試發現 確實是客戶端關閉了連接,或者說連接超時 ,無論你設置多少超時時間多沒用 原來是php進程不夠用了 改善一下php進程數 問題解決 默認測試環境才開5個子進程。


            USA-IDC為您提供免備案服務器 0元試用
            立即聯系在線客服,即可申請免費產品試用服務
            立即申請