2017-05-12 19 views
6

nginx zaman aşımlarında garip bir üretim sorunumuz var. İşteAralıklı nginx zaman aşımları akış yukarı sunucu olarak iskeleye sahip

"upstream timed out(110: Connection timed out)" 

, memba sunucu nginx da çalıştıran aynı ana çalışan jetty geçerli: zaman aşımı altında diyor. Jetty, 8080 numaralı bağlantı noktasında çalışıyor ve nginx, 443 üzerinde çalışıyor.

Yukarıdaki hatayı kontrol ettikten sonra, jetty günlüklerinin ve nginx günlüklerinin günlüklerini doğruladım. İskelenin bir saniyeden daha kısa sürede yanıt vermesine rağmen, nginx'e gönderilen yanıt 60 secs'a yakın olarak delayed. Ve nginx zamanlama 504 http yanıt kodu ile 60 saniye sonra timedout alarmı ateş ediyor. Bu intermittently oluyor. Zaman aşımına uğradı isteği için jetty & nginx'in günlükleri aşağıda verilmiştir.

İskele günlük:

{ "EVT": 1494519426927 "intelId": "50", "intelSeq": 112.506, "intelVer": "1", "saat": "2017 -05-11T16: 17: 06.927Z "," uiCorrelationIdV1 ":" SUI-1494519425839-42047 "," threadName ":" qtp754853679-357 "," wResource ":" http://m.xxx.com/search/facet/women/womens-handbags-9780510203/shoulder/_/N-53f3Z7hk9Z1z0roil "," wMethod ":" GET "," wStatus ": 200," wDurationMicros ": 1087801," wJlpLocation ":" "," wFwdFor ":" NADA "," wHostHdr ":" m.xxxx.com "," wReferer ":" https://m.xxxx.com/search/facet/women/womens-handbags-9780510203/_/N-53f3Z7hk9?search-term=Bags&sortBy=priceLow&facet=Handbag%20Style "," wHttpVer ":" HTTP/1.0 "," wWsgClientIp ":" 80.192.191.2 "," wSrcIP ":" 127.0.0.1 "," wUserAgent ":" Mozilla/5.0 (iPhone; Mac OS X gibi CPU iPhone OS 10_3_1) AppleWeb Kit/603.1.30 (KHTML, Gecko benzeri) Sürüm/10.0 Mobil/14E304 Safari/602.1" , "intelCropped": false, "intelLength": 834}

Nginx günlüğü:

2017-05-11T17: 18: 09 + 01: 00 intelId = "56" intelVer = "2" wMethod = "GET" wResource = "/ search/facet/women/womens-handbags-9780510203/across- vücut/omuz//N-53f3Z7hk9Z1z0roq4Z1z0roil? search-term = Çanta & sortBy = priceLow & facet = Çanta% 20Style " wStatus = "504" wCacheStatus = "MISS" wSrcIP = "172.17.233.135" wSize = "176" wDurationSeconds = "60.001" wHostHdr = "m.xxx.com" wReferer = "https://m.xxxx.com/ara/düzlük/kadın/kadın-çanta-9780510203/omuz//N-53f3Z7hk9Z1z0roil? ara dönem = torbalar & SortBy = priceLow üzerinde & faset = Çanta% 20Style" wSSL = "" wSSLver = "771" wSSLciph = "TLS1.2-ECDHE-RSA-AES256-GCM-SHA384" wWsgClientIp = "80.192.191.2" wFwdFor = "-" wJlpLocation = "-" wProtocol = "HTTP/1.1" wUpstreamAddr = "127.0.0.1:8080" wPort = 443 s_vi = "[CS] v1 | 2B4D4CA80501261B-600001064000B11D [CE]" s_ppv = "jl% 253Aaraştırma% 2C14% 2C100% 2C5789% 2C414% 2C628% 2C414% 2C736% 2C3% 2CP" recognisedUser = "true" wUiCorrelationIdV1 = "-" wUserAgent = "Mozilla/5.0 (iPhone; Mac OS X gibi CPU iPhone OS 10_3_1) AppleWebKit/603.1.30 (KHTML, Gecko gibi) Sürüm/10.0 Mobil/14E304 Safari/602.Bu 60 artı saniye zaman aşımı neden oluyor. 1" deviceType = 'mobil' Yukarıdaki iki kayıtlarından

, biz o dalgakıran 2017-05-11T16:17:06.927Z bir 200 yanıt döndürdü anlaması, ancak 2017-05-11T17:18:09+01:00 de nginx tarafından karşılandı. nginx ve iskelesi hem de garip Onun biraz aynı ana barındırılmaktadır. birisi sorunu ayıklama konusunda yardımcı veya önerilerinizi olsaydı

, bu harika olurdu.

Birçok peşin.

+0

NGINX yapılandırmanızı gönderir misiniz? Başarısızlıkların herhangi bir şekli var mı? Belirli bir zamanda mı yoksa istek türünde mi oluyorlar? –

+0

Teşekkürler @FaisalMemon, burada nginx.conf' yapıştırdı https://pastebin.com/K5NxKah0. Bu zaman aşımları düzensiz aralıklarla gerçekleşiyor, hiçbir desen gözlenmiyor. Ve bu sadece "GET" istekleri için gerçekleşiyor – harshavmb

+0

Başka bir gözlem, zaman aşımına uğramış uyarılardan önce, nginx tarafından tetiklenen aşağıdaki uyarıyı görüyoruz. '2017/05/11 06:41:51 [alert] 14485 # 14485: uzun kilitli aktif olmayan önbellek girdisini yoksay 424b6374aeba3d9cc85ba5833e3163cd, sayısı: 1' – harshavmb

cevap

0

Ihtiyacın var proxy_http_version, keepalive ayarınızı alakalı yapmak için kullanın. Buna ek olarak, keepalive ayarı, giriş bloğunuzda olmalıdır.

örn. Bunu yapılandırmanıza ekleyin:

proxy_http_version 1.1; 
proxy_set_header Connection ""; 
+0

Cevabınız için teşekkür ederiz. Bu yapılandırma değişikliklerini, üretim alanında görüldüğü gibi uygulamaktan biraz endişeliyim. HTTP 1.0' istekleri için de zaman aşımları gördük. 'Bağlantı' başlığının da, "Kapalı" nın yanı sıra zaman aşımı günlüklerindeki "canlı tutma" nın bir bileşimini gördüğüm sırada düzeltileceğini düşünmeyin. Bunu etkilenmemiş ürünlerimizden birinde uygulayacağım ve size bildireceğim. – harshavmb

İlgili konular