Bad Gateway 502 error with Apache mod_proxy and Tomcat

前端 未结 10 1711
北海茫月
北海茫月 2020-12-12 16:24

We\'re running a web app on Tomcat 6 and Apache mod_proxy 2.2.3. Seeing a lot of 502 errors like this:

Bad Gateway! The proxy server received an in

10条回答
  •  离开以前
    2020-12-12 16:53

    You can avoid global timeouts or having to virtual hosts by specifying the proxy timeouts in the ProxyPass directive as follows:

    ProxyPass /svc http://example.com/svc timeout=600
    ProxyPassReverse /svc http://example.com/svc timeout=600
    

    Notice timeout=600 seconds.

    However this does not always work when you have load balancer. In that case you must add the timeouts in both the places (tested in Apache 2.2.31)

    Load Balancer example:

    
         BalancerMember "http://member1:8080/svc" timeout=600
         BalancerMember "http://member2:8080/svc" timeout=600
     
    
    ProxyPass /svc "balancer://mycluster" timeout=600
    ProxyPassReverse /svc "balancer://mycluster" timeout=600
    

    A side note: the timeout=600 on ProxyPass was not required when Chrome was the client (I don;t know why) but without this timeout on ProxyPass Internet Explorer (11) aborts saying connection reset by server.

    My theory is that the :

    ProxyPass timeout is used between the client(browser) and the Apache.

    BalancerMember timeout is used between the Apache and the backend.

    To those who use Tomcat or other backed you may also want to pay attention to the HTTP Connector timeouts.

提交回复
热议问题