Apache Proxy TimeOut


18

ฉันพยายามที่จะเข้าใจสิ่งที่เกิดขึ้นกับข้อความต่อไปนี้ใน Apache 2.2 error_log ของเรา:

Wed May 18 21:03:29 2011] [error] [client 172.20.10.10] (70007)The timeout specified has expired: proxy: error reading status line from remote server super-load1-ga.test.com, referer: https://tester2.test.com/boom/ga/inside.asพี

เรากำลังเรียกใช้ Apache 2.2 กับ mod_proxy Apache นี้กำหนดเวลาคำขอที่เกี่ยวข้องกับค่า TimeOut 5 นาทีใน httpd.conf หรือไม่ (หมายความว่ามันไม่ได้รับการตอบสนองจากรีโมตเซิร์ฟเวอร์ใน 5 นาที) หรือนี่เป็นเพียงการตอบสนองจากรีโมตเซิร์ฟเวอร์ที่บอกว่ามันไม่สามารถจัดการการเชื่อมต่อได้หรือไม่?

Apache วิ่งออกจาก MaxClients อย่างรวดเร็วในช่วงเวลาที่ฉันเห็นข้อผิดพลาดนี้

ตัวอย่างด่วนของรายการพร็อกซี:

ProxyPass /boom/ga https://super-load1-ga.test.com
ProxyPassReverse /boom/ga https://super-load1-ga.test.com

คำตอบ:


28

คุณเพิ่มการหมดเวลาในคำสั่งProxyPass :

ProxyPass /boom/ga https://super-load1-ga.test.com connectiontimeout=300 timeout=300

ค่าหมดเวลาอยู่ในไม่กี่วินาที


6
หากคุณยังไม่ได้กำหนดอาร์กิวเมนต์การหมดเวลาของ ProxyPass Timeoutค่าโกลบอลของคุณจะถูกใช้ ดูhttpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxytimeoutและhttpd.apache.org/docs/2.2/mod/core html # timeout
ซิงค์

ฉันยังมีข้อผิดพลาด geeting การหมดเวลาที่ระบุหมดอายุแล้ว .... ฉันปิด ProxyRequests แล้วสิ่งนี้เกี่ยวข้องหรือไม่ ฉันควรทำให้เพิ่มการหมดเวลา ......
Ashish Karpe

5

ดูเหมือนว่าเซิร์ฟเวอร์ของคุณhttps://super-load1-ga.example.comใช้เวลาในการตอบสนองนานเกินไป

ในสถานการณ์สมมตินั้นถ้ามันอยู่ที่นั่นกระบวนการ Apache จะรอมัน กระบวนการนั้นถูกบล็อกโดยพื้นฐานคือไม่สามารถทำสิ่งอื่นใดได้ หากคุณไม่ได้หมดเวลาเร็วพอคุณจะหมดกระบวนการ Apache และกด MaxClients ซึ่งดูเหมือนจะสมเหตุสมผลทั้งหมด

คุณควรมีบันทึกในไซต์ super-load1-ga.test.com เพื่อดูว่าคำขอใช้เวลานานเท่าใดพวกเขาจะต้องมีอายุมากขึ้น

คุณสามารถลดระยะหมดเวลาในการเชื่อมต่อ ProxyPass

http://httpd.apache.org/docs/current/mod/mod_proxy.html#workers


ขอบคุณสำหรับคำตอบที่ยอดเยี่ยม Phil ดังนั้นคุณคิดว่านี่คือการกดปุ่ม httpd.conf ค่า TimeOut หลักเป็นเวลา 5 นาทีและ Apache กำลังหมดเวลาเซสชันหรือไม่ เนื่องจากฉันไม่ได้ตั้งค่าการหมดเวลาพร็อกซีเฉพาะมันจะเป็นค่าเริ่มต้น จากข้อเสนอแนะการหมดเวลาของพร็อกซีคุณคิดว่าฉันควรใช้ตัวแปร ProxyTimeout หรือคำสั่ง ProxySet หรือไม่ (ProxySet connectiontimeout = 5 หมดเวลา = 30)
roacha

2

เพื่อตอบคำถามของคุณใช่ Apache2 httpd ในโหมดพร็อกซีจะบันทึกข้อความแสดงข้อผิดพลาดเมื่อ Apache2 httpd หมดเวลา หากเซิร์ฟเวอร์ที่เชื่อมต่อกับ Apache2 httpd ในโหมดพร็อกซี่เป็นสาเหตุที่จะมีข้อความที่แตกต่างกัน

ข้อความมีหลายส่วน: The timeout specified has expiredเป็นข้อความเทียบเท่าของAPR_TIMEUPรหัสข้อผิดพลาดดู:

srclib / Apr / เบ็ดเตล็ด / Unix / errorcodes.c

case APR_TIMEUP:
    return "The timeout specified has expired";

จากนั้นproxy: error reading status line from remote server super-load1-ga.test.comเป็นมา

โมดูล / พร็อกซี่ / mod_proxy_http.c

หากคุณเพิ่มระดับการบันทึกเป็น APLOG_DEBUG คุณควรเห็นข้อความเพิ่มเติม: proxy: read timeoutเช่นกัน

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