成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

Nginx報錯104:Connection reset by peer問題的解決及分析

瀏覽:311日期:2023-03-13 15:37:11
目錄
  • 問題解決
    • 應用部署環境
    • 現象
    • 解決
      • 過程
      • 最終解決
  • 問題分析
    • 連接重置
      • Tomcat 的 Connector
        • Nginx 104
        • 類似問題解決思路
          • 總結

            問題解決

            應用部署環境

            • 語言:java
            • 框架:ssm
            • web容器:tomcat
            • 負載:nginx
            • 外層代理:F5

            現象

            根據客戶需求對接一個停車繳費的功能,發布到生產環境之后發現,少量賬單同時支付沒有問題,一旦同時支付的賬單數量超過某個值,就會出現網路連接問題,穩定復現。

            解決

            過程

            首先查看了應用的日志,發現用戶提示網絡異常的時候,服務端沒有任何相關的日志打印,確定請求沒有發到服務端

            查看Nginx Error日志發現打印了錯誤信息

            2021/09/09 08:38:56 [error] 16299#16299: *240963 readv() failed (104: Connection reset by peer) while reading upstream, client: ****, server: ****, request: "POST ****?formData=E172Rfbkeuw2Z6fFYyg95hUMDmDwaOZT7Mqopwu07lo%3CVxsdDikPopy1XjjtjmvSusJwb7UF3erixZi5Wy099%3CewyDvM3wWhvE8X/z/vxKow2ttM1iHPSmWn...
            

            通過nginx日志發現,雖然是nginx層拋出了錯誤,但是以日志內容來看,其實nginx已經是將請求的報文完整的接收了下來(這個也是在解決問題之后才反應過來),所以其實問題應該是出在Nginx將請求轉給被代理的應用服務的時候。

            當時在排查問題的時候,沒有考慮到還有一層tomcat,導致哪怕是當時懷疑了問題不在nginx這塊,還是不敢相信自己,去網上一頓亂搜。

            最終解決

            在tomcat/conf/server.xml中,增加Connector中的參數配置maxHttpHeaderSize="65536",增加允許tomcat接收的最大請求頭大小

            <Connector port="****" protocol="org.apache.coyote.http11.Http11NioProtocol"
                   URIEncoding="UTF-8"
              maxHttpHeaderSize="65536" 
                   connectionTimeout="20000"
                   acceptCount="500" maxThreads="500"
                   redirectPort="****" />
            

            問題分析

            連接重置

            TCP RST

            正常情況,服務端使用socket建立一個服務端監聽,客戶端通過socket向服務端監聽發起連接, 雙方經過TCP握手協議之后,數據開始傳輸,TCP協議規定連接在建立之后,雙方只要有一端發起關閉的信號,兩端就會走放手協議的流程(四次揮手),不再進行數據傳輸。但是如果一端發起關閉信號之后,不再接收請求,另外一端依然不進入關閉流程,而是依然不停的發送數據,或者是關閉的一端緩存區的數據沒有讀完就進行了關閉,這時候,關閉的一端就會返回一個RST的信號,告訴另外一端連接被重置

            其他情況的RST

            除了上邊的一種情況,RST還可能出現在客戶端找不到服務端端口,服務端因為各種關閉不接收數據等等場景中,但是無一例外,最終就是一端的數據,沒有被另外一端完整讀取到 ,比如以下幾種情況

            1. 客戶端直接找不到想要連接的服務端
            2. 一端早就處于關閉的狀態了,另外一端還在傻乎乎的給他傳輸數據
            3. 一端關閉的時候,沒有讀完另外一端發過來的數據

            Tomcat 的 Connector

            其實在一定程度上說,Tomcat和Nginx的作用相同,只不過兩者的職責不同,Nginx使用了異步非阻塞高性能的組合,可以代理各種各樣的URI資源,而Tomcat代理的是一個一個的Servlet容器,它可以容納所有遵循Servlet規范的應用,并且統一將它們管理。Connector是其中最重要的一部分,它是一個HTTP連接器,它通過啟動一個Socket監聽,用來接收不同類型的請求,然后把他們解析成對應的Servlet規范的請求,才會將這些請求分發到不同的Servlet中進行處理。當然,內部做了很多其他的事情包括請求校驗攔截,請求轉化,請求異步線程處理等等。這里只是簡單介紹一下,后續會增加關于tomcat部分的文章

            Nginx 104

            在我們這個案例的場景下分析,nginx要將拿到的請求轉發給tomcat中的應用,需要跟tomcat的Connector建立連接,可以將nginx理解為客戶端,將tomcat中的Connector理解為socket服務端。tomcat給Connector一套默認的配置,其中maxHttpHeaderSize默認的值是4096字節,也就是4kb。超過4kb的請求頭大小的請求,不進行處理,當然這里也有可能發生兩種情況,第一種是Connector一開始就知道nginx發過來的請求頭過大,直接不接收,響應回去RST標識,還有一種是Connector沒有管請求頭的大小,直接去接收,但是因為沒有將請求頭數據讀取完就關閉了,響應了RST。這部分沒有細看,但是不論怎么說,都是因為上邊說過的,沒有正常處理完客戶端發送過來所有的數據。

            類似問題解決思路

            在開始無腦查詢的時候,其實有很多答案雖然錯誤碼是104,但是報錯的原因是不相同的,解決方案也是各不相同,看到過大概以下幾種解決思路

            1. nginx的buffer太小,timeout太小。
            2. 長連接,增加長連接超時時間
            3. 將 http version改到1.1 (其實也是使用長連接解決,因為http1.1默認使用長連接)

            雖然個人試其他解決方式的時候,都沒有成功,也有可能是因為tomcat Connector 連接器的最大請求頭4K大小的這個默認配置從最基礎的環節直接給把其他配置砍掉了。但是不論使用何種方式解決,最終來說我們就一個思路(雖然說了很像沒說),先找到是哪端沒有將數據讀取完畢,然后想辦法讓它正常讀取

            總結

            本片文章根據個人發生的實際生產問題,著手解決并且進行問題分析,通過對nginx104的跟蹤,對連接重置的概念有一個更詳細的了解。

            到此這篇關于Nginx報錯104:Connection reset by peer問題的解決及分析的文章就介紹到這了,更多相關Nginx報錯104:Connection reset by peer內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

            標簽: Nginx
            成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
            日韩欧美国产精品一区| 91免费精品国自产拍在线不卡| 国产91丝袜在线观看| 国产午夜精品一区二区| 一本色道久久综合亚洲精品不| 日韩精品午夜视频| 国产日韩欧美a| 欧美日韩亚洲综合| 欧美中日韩免费视频| 欧美激情第二页| 成人免费va视频| 青青草原综合久久大伊人精品| 国产女主播一区| 日韩欧美www| 日本高清无吗v一区| 99www免费人成精品| 成人激情动漫在线观看| 免费观看久久久4p| 亚洲精品国产精华液| 久久久久亚洲蜜桃| 日韩一区二区免费在线观看| 亚洲欧美国产精品桃花| 国内精品久久久久久久影视麻豆| 久久久亚洲精品一区二区三区 | 欧美一区二区播放| 欧美性色aⅴ视频一区日韩精品| 野花国产精品入口| 亚洲一级特黄| 精品午夜一区二区三区在线观看| 亚洲精品老司机| 中文在线资源观看网站视频免费不卡| 欧美一级日韩免费不卡| 欧美日韩一区精品| 色视频成人在线观看免| 色婷婷精品久久二区二区蜜臂av | 欧美一级免费大片| 欧美电影一区二区三区| 91精品一区二区三区在线观看| 欧美日韩视频在线一区二区 | 精品在线观看免费| 美女一区二区视频| 麻豆国产精品一区二区三区| 日韩制服丝袜av| 午夜视频在线观看一区| 午夜精品久久久久久久蜜桃app| 亚洲一区免费观看| 青青青伊人色综合久久| 男女视频一区二区| 国产一区二区精品久久91| 国产精品一区二区三区四区| 粉嫩嫩av羞羞动漫久久久 | 亚洲精选一区| 亚洲一区二区三区午夜| 国产亚洲毛片在线| 亚洲女同同性videoxma| 在线观看视频欧美| 欧美高清视频不卡网| 精品日韩在线观看| 国产午夜亚洲精品午夜鲁丝片| 国产亚洲精品bt天堂精选| 中文久久乱码一区二区| 一区二区三区毛片| 日韩成人精品在线观看| 国产馆精品极品| 国模精品娜娜一二三区| 国产精品久久久免费| 欧洲视频一区二区| 91精品国产黑色紧身裤美女| 国产日韩欧美高清| 亚洲成av人**亚洲成av**| 日韩中文字幕一区二区三区| 国产一区999| 欧美日韩网址| 久久精品成人一区二区三区蜜臀| 欧美日韩免费观看一区三区| 久久人人97超碰com| 国产精品国产三级国产aⅴ入口| 亚洲天堂免费在线观看视频| 日本不卡不码高清免费观看| 99vv1com这只有精品| 国产精品日韩欧美一区| 欧美精品在欧美一区二区少妇| 亚洲国产激情av| 欧美aaa在线| 欧美体内she精视频在线观看| 国产欧美日韩一级| 欧美一区二区三区在线视频| 国产精品国产三级国产专播品爱网 | 5566中文字幕一区二区电影| 国产精品久久久久久亚洲毛片| 偷偷要91色婷婷| 91污在线观看| 在线国产亚洲欧美| 久久精品免费在线观看| 婷婷中文字幕一区三区| 波多野结衣在线一区| 日韩三级视频中文字幕| 精品国产三级a在线观看| 国产精品久久久一区二区| 国产福利精品导航| 夜夜精品视频一区二区| 欧美变态tickling挠脚心| 久久精品二区| 欧美精品日本| 国产一区二区三区在线观看精品 | 久久亚洲综合| 美女精品在线观看| 国产欧美日韩三区| 国产精品综合久久| 玖玖在线精品| 亚洲激情中文1区| 欧美视频不卡| 久久久午夜精品| 粉嫩一区二区三区在线看| 欧美亚州韩日在线看免费版国语版 | 亚洲综合丁香婷婷六月香| 欧美va天堂在线| 日韩一区二区不卡| 调教+趴+乳夹+国产+精品| 亚洲国产片色| 中文字幕 久热精品 视频在线| 北岛玲一区二区三区四区| 7777女厕盗摄久久久| 日韩精品一二三| 国产精品日本欧美一区二区三区| 中文字幕在线观看一区| 91免费国产在线| 久久精品欧美日韩| 成人久久久精品乱码一区二区三区| 欧美亚洲一区三区| 九一九一国产精品| 欧美日韩夫妻久久| 蜜臀av性久久久久蜜臀aⅴ流畅| 另类激情亚洲| 丝袜美腿亚洲色图| 久久免费99精品久久久久久| 午夜国产精品一区| 国产午夜久久| 午夜欧美电影在线观看| 91成人免费在线视频| 久久福利视频一区二区| 狠狠色噜噜狠狠色综合久| 午夜欧美视频在线观看| 午夜精品久久久久久久| 欧美另类亚洲| 五月激情六月综合| 国产精品天美传媒| 精品国产91乱码一区二区三区| 老司机精品视频网站| 亚洲丰满在线| jizzjizzjizz欧美| 国产成人一区在线| 国产精品自拍av| 老司机一区二区| 亚洲线精品一区二区三区| 中文字幕一区二区三| 久久精品视频一区| 久久综合狠狠综合久久综合88| 五月婷婷综合网| 亚洲成av人在线观看| 亚洲成人在线网站| 亚洲激情在线激情| 一区二区三区日韩| 1000精品久久久久久久久| 欧美激情综合网| 国产亚洲精品久| 国产欧美一区二区精品性| 久久综合色之久久综合| 精品国产一二三| 精品国产乱码久久久久久1区2区| 精品久久一区二区三区| 欧美精品一区二区三区一线天视频| 日韩一级大片在线观看| 日韩一区二区不卡| 日韩欧美在线影院| 91精品国产91久久久久久一区二区 | 国内精品视频666| 精品亚洲成a人| 精品亚洲欧美一区| 国产成人综合在线| 成人av在线观| 色综合一区二区三区| 国内激情久久| 日韩视频精品在线观看| 正在播放亚洲| 亚洲一区二区三区四区中文| 性伦欧美刺激片在线观看| 久久精品123| 欧美天天综合网| 欧美一区二区美女| 久久久久久久久99精品| 中文久久乱码一区二区| 亚洲美女区一区| 香蕉成人伊视频在线观看| 青青国产91久久久久久| 福利电影一区二区| 欧美日韩一区二区三区免费| 亚洲福利一区| 亚洲综合国产激情另类一区| 在线视频欧美精品|