apache reverseproxy超时恰好在60秒后

时间:2019-01-09 05:34:49

标签: apache timeout reverse-proxy

我有Apache Reverse代理服务器,它可以代理我的内部Apache服务器。我正在Linux平台上使用Apache 2.4版。

每当后端Apache服务器花费超过60秒(PHP页面等待后端Apache服务器上的Mysql查询结果)时,我就会遇到超时页面和HTTP错误504

Apache默认超时设置为300秒。

仅当通过apache反向代理访问网站时,才会出现此问题。通过使用内部IP,效果很好。

我尝试将以下参数设置为proxypass,但是没有运气。

ProxyPass / http://internal-ip:8080/ retry=1 acquire=3000 timeout=600 Keepalive=On

我还尝试对不存在的IP进行ProxyPass,该IP在60秒后还会显示504 HTTP错误

请帮助我了解此问题。

<VirtualHost *:80>
 ServerName mywebsite.example.com
 ServerAlias www.mywebsite.example.com
 ProxyPreserveHost On
 DocumentRoot /var/www/html
        ErrorLog ${APACHE_LOG_DIR}/mywebsite.example.com-error.log
        CustomLog ${APACHE_LOG_DIR}/mywebsite.example.com-access.log combined

 RewriteCond %{REQUEST_METHOD} !^(GET|POST)$
 RewriteRule .* - [R=405,L]
 ProxyPass /.static-pages !
 ProxyPass / http://<Internal Apache Server IP>/
 ProxyPassReverse / http://<Internal Apache Server IP>/
</VirtualHost>

1 个答案:

答案 0 :(得分:0)

我遇到了完全相同的问题,并通过以下方式解决了问题:

ProxyRequests off
    Timeout 600
    ProxyTimeout 600
    <Proxy balancer://Mycluster>
        BalancerMember http://url:80
        ProxySet lbmethod=byrequests timeout=600
    </Proxy>
    ProxyPass / balancer://Mycluster/ timeout=600