หมดเวลาการเชื่อมต่อ nginx & ปัญหาการเชื่อมต่อลูกค้าปิด


21

ฉันมีเซิร์ฟเวอร์ nginx นี้ทำงานบน AWS & มันทำงานได้ดีจนกระทั่งเมื่อไม่นานมานี้เมื่อมีผู้ใช้สองคนเริ่มบ่นเกี่ยวกับเว็บไซต์ที่ไม่เปิดจนกว่าพวกเขาจะพยายามเข้าถึงมัน 10 ครั้ง

ฉันไม่สามารถแก้ไขปัญหาได้จากด้านข้างของฉัน ฉันกำลังใช้ DNS ของ google เช่น 8.8.8.8 และเมื่อฉันเปลี่ยนเหมือนกันสำหรับหนึ่งในผู้ใช้ไซต์ทำงานได้ดี ตอนนี้อาจเป็นเหตุผลหรือนี่อาจเป็นเพียงเรื่องบังเอิญ

ฉันพบสิ่งนี้ในบันทึกข้อผิดพลาด -

2014/05/29 13:46:15 [info] 6940#0: *150649 client timed out (110: Connection timed out) while waiting for request, client: xx.xxx.xxx.xx, server: 0.0.0.0:80
2014/05/29 13:46:20 [info] 6940#0: *150670 client closed connection while waiting for request, client: xx.xxx.xxx.xx, server: 0.0.0.0:80
2014/05/29 13:46:20 [info] 6940#0: *150653 client closed connection while waiting for request, client: xx.xxx.xxx.xx, server: 0.0.0.0:80
2014/05/29 13:46:20 [info] 6940#0: *150652 client closed connection while waiting for request, client: xx.xxx.xxx.xx, server: 0.0.0.0:80

และบางสถานที่แม้แต่สิ่งนี้ -

2014/05/29 13:46:53 [info] 6940#0: *150665 client closed connection while waiting for request, client: xx.xxx.xxx.xx, server: 0.0.0.0:80
2014/05/29 13:46:53 [info] 6940#0: *150660 client xx.xxx.xxx.xx closed keepalive connection

หมายเหตุ - ได้วาง xx.xxx.xxx.xx ไว้สำหรับ clien't IP

นี่คือการกำหนดค่า nginx -

server {
    listen       80;
    server_name  somedomain.com  www.somedomain.com;

    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;

    root        /var/www/somedomain/current/app/webroot;
    index       index.php index.html index.htm;

    ... couple of location rules ...
}

ฉันขอขอบคุณความช่วยเหลือใด ๆ

ขอบคุณ


1
นี่อาจเป็นปัญหากับการเชื่อมต่อของนักพัฒนากับเซิร์ฟเวอร์ไม่ใช่เซิร์ฟเวอร์ เนื่องจากคุณไม่สามารถสร้างปัญหาขึ้นอีกครั้งและเซิร์ฟเวอร์เองกำลังลงทะเบียนการหมดเวลาเชื่อมต่อไคลเอ็นต์เราจึงต้องสงสัยว่านักพัฒนาซอฟต์แวร์อาจอยู่หลังไฟร์วอลล์และมีปัญหาเครือข่ายภายในที่เป็นสาเหตุของปัญหานี้
Andrew S

คุณสามารถลองปิดการใช้งาน Keep-Alive เช่นเดียวกับการทดสอบสำหรับปัญหานี้ ฉันไม่แน่ใจว่าทราฟฟิกที่เข้าชมเว็บเซิร์ฟเวอร์ของคุณ แต่ Keep-Alive อาจทำให้คุณเกิดขีด ​​จำกัด การทำงานพร้อมกันในการกำหนดค่า nginx ของคุณ นี่คือข้อมูลเพิ่มเติม: nginx.com/blog/http-keepalives-and-web-performance
Alfonso

1
@NitishDhar คุณได้รับการแก้ไขปัญหานี้หรือไม่? ฉันกำลังเผชิญปัญหาเดียวกันและเพียง clueless จะดีใจถ้าคุณสามารถแบ่งปันวิธีแก้ปัญหา
Ethan Collins

2
คำถาม: เซิร์ฟเวอร์อยู่หลังตัวโหลดบาลานซ์หรือไฟร์วอลล์หรือไม่ NAT เกี่ยวข้องหรือไม่ มีการจัดเรียงใด ๆ ระหว่างเซิร์ฟเวอร์และอินเทอร์เน็ตหรือไม่? เหตุผลที่ฉันถามคือเสียงนี้ดูเหมือนเป็นเรื่องที่เกิดขึ้นเมื่อมีอุโมงค์อยู่ในเส้นทางและมีบางคนบล็อก ICMP ทั้งหมดซึ่งทำให้การค้นพบ Path MTU ผิดเพี้ยนไป
GeorgeB

นอกจากนี้เอาต์พุตของ cat / proc / sys / net / ipv4 / tcp_mtu_probing คืออะไร
GeorgeB

คำตอบ:


6

จากบันทึกที่คุณได้รับจาก Nginx ดูเหมือนว่าการเชื่อมต่อระหว่างเซิร์ฟเวอร์ของคุณกับผู้ใช้จะไม่เสถียรหรือช้า โปรดลองtracerouteไปยังที่อยู่ IP ของลูกค้าหรือเกตเวย์ของเขา / เธอจากเซิร์ฟเวอร์ของคุณ นอกจากนี้ที่pingอยู่ IP ของลูกค้าของคุณเป็นเวลานานเพื่อดูอัตราการสูญเสียแพ็คเก็ตและเวลาตอบสนอง MTU อาจเป็นอีกสาเหตุหนึ่งของปัญหานี้ ทดสอบว่าคุณสามารถเข้าถึงลูกค้าของคุณกับ MTU = 1500 (Mac: ping -D -s 1472 xx.xx.xx.xx)

BTW: หากเซิร์ฟเวอร์หรือลูกค้าของคุณอยู่ในประเทศจีนปัญหานี้มักจะไม่ใช่ความผิดของคุณ GFW เป็นที่ทราบกันว่าสุ่มทิ้งแพ็กเก็ตระหว่างเส้นขอบเพื่อทำให้คุณภาพการเชื่อมต่อระหว่างประเทศแย่ลง


fyi, GFW = ไฟร์วอลล์ที่ยอดเยี่ยมของจีน
Roshan

0

ตามที่ระบุไว้ในความคิดเห็นนั้นอาจเป็นข้อผิดพลาดของผู้ใช้และพวกเขากำลังปิดการเชื่อมต่อ (ไม่ว่าจะโดยเจตนาหรือไม่ก็ตาม) พยายามทำให้เกิดปัญหาอย่างน่าเชื่อถือ ออกกฎให้เกิดขึ้นที่อื่นและถ้าเป็นเพียงที่ตั้งพวกเขาจะต้องแก้ไขปัญหาในตอนท้าย ลองจากเบราว์เซอร์ / คอมพิวเตอร์ที่แตกต่างกันแล้วทดสอบความน่าเชื่อถือของเครือข่าย


0

รายการบันทึกเหล่านี้มีลักษณะคล้ายกับรายการที่ปรากฏขึ้นเมื่อฉันใช้เครื่องมือเช่น OpenVAS เพื่อสแกนเซิร์ฟเวอร์ เครื่องมือเหล่านี้ทำให้การเชื่อมต่อที่ไม่ดีทำงานช้าหรือทำงานได้ไม่ดี nginx กำลังรายงานว่าการเชื่อมต่อบางอย่างเล่นได้ไม่ดี หากการรับส่งข้อมูลทั้งหมดมาจากแหล่งเดียวกันและรวดเร็วและไม่มีคำขอตามกฎหมายอื่น ๆ ที่จะจับคู่ในบันทึกการเข้าถึงอาจเป็นเพียงแค่บอตสแกนเนอร์

สแกนเนอร์เหล่านี้อาจทำให้แอปพลิเคชันของคุณโหลดได้ซึ่งอาจทำให้การรับส่งข้อมูลอื่น ๆ ช้าลง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.