我在 Ubuntu 12.04 上安装了 Apache/2.2.22。Apache 被设置为反向代理服务器。因此,当从远程系统访问时,页面和内容都会显示出来。但一段时间后,服务器似乎拒绝了任何进一步的请求。远程浏览器控制台显示“net::ERR_CONNECTION_TIMED_OUT”错误。但当远程计算机的 IP 发生变化时(使用每次连接/断开连接后都会更改 IP 的加密狗),页面/内容会再次显示。但上述问题再次出现。
tomcat7 与 apache 一起运行。Tomcat 通过端口 8080 为 jsf 页面提供服务。所有其他请求均由 apache 处理,并将其代理到虚拟机。
在apache2.conf
文件中我主要查看/更改了这些指令
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 2
Include proxy.conf
ServerLimit 350
StartServers 20
MinSpareServers 75
MaxSpareServers 150
MaxClients 320
在proxy.conf
<VirtualHost *:3000>
ServerName server_name
ErrorLog ${APACHE_LOG_DIR}/cartodb_error.log
LogLevel debug
CustomLog ${APACHE_LOG_DIR}/cartodb_custom.log combined
<Proxy balancer://mycluster>
BalancerMember http://cartodb.user:3002
</Proxy>
ProxyPass / balancer://mycluster/ maxattempts=10000000
ProxyPassReverse / balancer://mycluster/
<VirtualHost *:8182>
ServerName server_name
ErrorLog ${APACHE_LOG_DIR}/windshaft_error.log
LogLevel debug
CustomLog ${APACHE_LOG_DIR}/windshaft_custom.log combined
<Proxy balancer://mycluster>
BalancerMember http://cartodb.user:8182
</Proxy>
ProxyPass / balancer://mycluster/ maxattempts=10000000
ProxyPassReverse / balancer://mycluster/
还具有类似的 VirtualHost 指令,端口 8082、8889 具有类似的设置。已在 /etc/hosts 文件中添加了“cartodb.user”,以将其重定向到虚拟盒。还已为虚拟盒禁用防火墙。虚拟盒也安装了 Ubuntu 12.04。
在ports.conf
NameVirtualHost *:80
NameVirtualHost *:8889
NameVirtualHost *:8082
NameVirtualHost *:8182
NameVirtualHost *:3000
Listen 80
Listen 8889
Listen 8082
Listen 8182
Listen 3000
启用的模块包括
actions.conf,actions.load,alias.conf,alias.load,authz_host.load,
cache.load,cgid.conf,cgid.load,proxy_ajp.load,proxy_balancer.conf,
proxy_balancer.load,proxy.conf,proxy_connect.load,proxy_ftp.conf,proxy_ftp.load,
proxy_html.conf,proxy_html.load,proxy_http.load,proxy.load,
proxy_scgi.load,rewrite.load
在 reqtimeout.conf 上
RequestReadTimeout header=20-40,minrate=500
RequestReadTimeout body=10,minrate=500
LogLevel
检查了 Apache 日志文件,在调试时没有给出任何错误。请指出如何避免这种情况
答案1
您是否尝试过使用其他浏览器?由于您的错误消息不是常见的 Web 服务器/应用程序错误,请先尝试其他浏览器。
另一个可能的解释是您的 Web 服务器无法再接受任何连接。您可以通过启用 mod_status 来检查这一点
答案2
我遇到了同样的问题。就我而言,apache 配置不是问题。问题在于服务器所在的网络,就我而言,我使用的是 AWS。我的服务器的 ips 没有配置为“弹性 IP”,并导致了这个问题,只需将其更改为“弹性 IP”,问题就解决了。