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

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


日志記錄中HTTP狀態(tài)碼出現(xiàn)499錯誤有多種情況,比如nginx反代到一個永遠(yuǎn)打不開的后端,日志狀態(tài)記錄就會是499、發(fā)送字節(jié)數(shù)是0。


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

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

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


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

401 Unauthorized:告訴客戶端,要想獲取資源的訪問權(quán),首先要對自己認(rèn)證。

402 Payment Required:此狀態(tài)碼還未被使用,保留中。

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

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

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

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

407 proxy Authentication Required:與401類似,但是用于要求對資源進(jìn)行認(rèn)證的代理服務(wù)器。

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


409 Conflict:用于說明請求可能在資源上引發(fā)一些沖突。服務(wù)器擔(dān)心請求會引發(fā)沖突時,發(fā)送此代碼。并在響應(yīng)的主體中描述沖突。


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


nginx 499錯誤的原因


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


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


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


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


proxy_ignore_client_abort on;

Don't know if this is safe.


就是說要配置參數(shù) proxy_ignore_client_abort on;


表示代理服務(wù)端不要主要主動關(guān)閉客戶端連接。


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


還有一種原因是 我后來測試發(fā)現(xiàn) 確實是客戶端關(guān)閉了連接,或者說連接超時 ,無論你設(shè)置多少超時時間多沒用 原來是php進(jìn)程不夠用了 改善一下php進(jìn)程數(shù) 問題解決 默認(rèn)測試環(huán)境才開5個子進(jìn)程。


海外服務(wù)器免費測試http://hbjsdrq.com/


USA-IDC為您提供免備案服務(wù)器 0元試用
立即聯(lián)系在線客服,即可申請免費產(chǎn)品試用服務(wù)
立即申請