tft每日頭條

 > 圖文

 > 訪問nginx出現403錯誤怎麼解決

訪問nginx出現403錯誤怎麼解決

圖文 更新时间:2024-12-04 10:01:14

訪問nginx出現403錯誤怎麼解決?監控發現nginx服務日志中出現較多的499狀态碼,499狀态碼在Nginx中代表的是客戶端在服務端返回之前主動斷開了連接,由于客戶端設置的超時時間為2s,故到達2s未收到服務端響應客戶端主動斷開了連接造成了499響應碼,我來為大家講解一下關于訪問nginx出現403錯誤怎麼解決?跟着小編一起來看一看吧!

訪問nginx出現403錯誤怎麼解決(nginx出現大量499響應碼怎麼辦)1

訪問nginx出現403錯誤怎麼解決

一、問題現象

監控發現nginx服務日志中出現較多的499狀态碼,499狀态碼在Nginx中代表的是客戶端在服務端返回之前主動斷開了連接,由于客戶端設置的超時時間為2s,故到達2s未收到服務端響應客戶端主動斷開了連接造成了499響應碼。

二、可能的故障點
  1. 服務器的問題,例如CPU使用率高,隊列堵塞,導緻無法及時處理請求,從而導緻客戶端超時斷開連接
  2. 網絡出現問題,丢包或者出現網絡堵塞
  3. 專線線路存在問題
  4. 後端服務存在性能瓶頸,當流量變大時,響應時間提高,導緻客戶端超時斷開連接
三、排查服務器問題
  1. 使用top命令,查看CPU使用率低于10%,内存使用率低于20%,沒有明顯的性能波動。
  2. 使用vmstat 1 20命令,發現CPU隊列為1,服務器具備4個CPU,使用率較低,未有明顯異常,io情況也正常。

初步判斷與服務器無關。

四、排查網絡問題
  1. 使用ethtool eth0命令查看網絡帶寬配置情況,發現 Speed: 1000Mb/s,Duplex:Full,千兆的網卡全部打滿,沒有進行帶寬限制。
  2. 使用sar -n DEV 1 20命令查看網絡的實時流量,可以看到rxkB/s峰值1800多,txkB/s峰值2400多,遠遠未達到網絡上的流量限制,通過sar -n EDEV 1 20查看有網絡錯誤的流量,發現均為0
  3. 使用抓包工具在網絡出口上進行抓包,發現網絡數據包均正常發送,未有明顯延時的情況

初步判斷網絡設備沒有問題。

五、排查專線線路問題

後端服務是合作方的服務,通過專線相連接,專線有主、備兩條,分别屬于電信和移動運營商,主線經過電信的排查帶寬無問題,排查期間将線路切換到備線,問題依舊存在。

初步判斷與專線線路無關。

六、排查後端服務性能問題

由于超過2s客戶端主動斷開了連接,無法判斷後端服務是否收到了請求且是否正常響應。在nginx location模塊的配置中添加配置: proxy_ignore_client_abort on;,添加此配置以後,雖然客戶端到達2s以後會主動斷開連接,但是nginx會繼續轉發到後端服務且等待後端服務返回,并打印日志。

添加完此配置以後,發現日志中已經沒有出現499的響應碼,查看response time大于2s的請求,發現均正常返回,但是響應時間超過2s,高峰之時,響應時間最高超過10s。

由此可以判斷,後端服務是能夠正常收到請求的,隻是由于後端服務網絡設備或者是後端服務在大流量的情況下性能不足,導緻響應緩慢,從而出現大量499響應碼。

七、排查結果

當流量升高時,大約1000TPS左右,響應時間顯著提高,從原來毫秒級别變成最大超過10秒鐘,此時使用ping發現沒有網絡延時,可以确定是後端服務存在性能問題。

以上排查主要是提供的排查的方法,逐步排查各個可能的故障點,實際生産排查中一般根據經驗調整排查的順序,例如直接就先排查後端的服務的響應時間,這個就依賴于個人的經驗了。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved