Thời gian ủy quyền của Apache


18

Tôi đang cố gắng hiểu những gì đang xảy ra với thông báo sau trong Apache 2.2 error_log của chúng tôi:

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.asp

Chúng tôi đang chạy Apache 2.2 với mod_proxy. Đây có phải là Apache hết thời gian yêu cầu liên quan đến giá trị TimeOut 5 phút của nó trong httpd.conf không? (Có nghĩa là nó không nhận được phản hồi từ máy chủ từ xa trong 5 phút.) Hay đây chỉ đơn giản là phản hồi từ máy chủ từ xa nói rằng nó không thể xử lý kết nối?

Apache nhanh chóng hết MaxClents trong khoảng thời gian tôi thấy lỗi này.

Ví dụ nhanh về mục nhập Proxy:

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

Câu trả lời:


28

Bạn tăng thời gian chờ trong chỉ thị ProxyPass :

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

Giá trị thời gian chờ tính bằng giây .


6
Nếu bạn chưa xác định đối số hết thời gian ProxyPass, Timeoutgiá trị toàn cầu của bạn sẽ được sử dụng. Xem httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxytimeouthttpd.apache.org/docs/2.2/mod/core. thời gian chờ html #
đồng bộ hóa

Tôi cũng đang bị lỗi khi hết thời gian chờ đã hết .... Tôi đã tắt ProxyRequests vì vậy điều này có liên quan không? tôi có nên làm điều đó để tăng thời gian chờ không ......
Ashish Karpe

5

Có vẻ như máy chủ của bạn https://super-load1-ga.example.comđang mất quá nhiều thời gian để phản hồi.

Trong kịch bản đó, nếu nó chỉ nằm ở đó thì quá trình Apache sẽ chờ nó. Quá trình đó về cơ bản bị chặn, tức là không thể làm gì khác. Nếu bạn không đủ thời gian đủ nhanh, bạn sẽ hết các quy trình Apache và đạt MaxCl Client dường như hoàn toàn có ý nghĩa.

Bạn nên có nhật ký trên trang web super-load1-ga.test.com để xem các yêu cầu được thực hiện trong bao lâu, chúng phải mất một độ tuổi.

Bạn có khả năng có thể rút ngắn thời gian chờ trên kết nối ProxyPass

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


Cảm ơn phản hồi tuyệt vời Phil. Vì vậy, bạn nghĩ rằng điều này đang đạt giá trị httpO.conf TimeOut chính trong 5 phút và Apache đang hết thời gian? Bởi vì tôi không có thời gian chờ cụ thể proxy, nó sẽ mặc định. Trên đề xuất hết thời gian Proxy, bạn có nghĩ rằng tôi nên sử dụng biến ProxyTimeout hoặc lệnh ProxySet không? (Proxy set connectiontimeout = 5 timeout = 30)
roacha

2

Để trả lời câu hỏi của bạn, vâng, Apache2 httpd trong chế độ proxy sẽ ghi thông báo lỗi đó khi Apache2 httpd hết thời gian. Nếu máy chủ được kết nối với Apache2 httpd ở chế độ proxy là nguyên nhân sẽ có một thông báo khác.

Thông báo có nhiều phần: The timeout specified has expiredlà văn bản tương đương với APR_TIMEUPmã lỗi, xem:

srclib / apr / misc / unix / errorcodes.c

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

Sau đó proxy: error reading status line from remote server super-load1-ga.test.comlà trong

mô-đun / proxy / mod_proxy_http.c

Nếu bạn tăng cấp độ nhật ký của mình lên APLOG_DEBUG, bạn cũng sẽ thấy một thông báo bổ sung: proxy: read timeoutquá.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.