我有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>
答案 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