我在 Tomcat 中使用 mod_proxy_ajp 并且收到以下错误:
(70007) 指定的超时已过期:ajp_ilink_receive() 无法接收标头
我该如何解决?
我的 apache (2.2.3) 通过 mod_proxy_ajp 与 tomcat 6.something 对话。
我有一些荒谬的长期请求(2-6 分钟),我认为我们在某个地方遇到了一些默认超时......哪里是提高它的正确位置?
这是我的代理定义:
<Location /blah>
ProxyPass ajp://localhost:8010/blah
ProxyPassReverse ajp://localhost:8010/blah
</Location>
Run Code Online (Sandbox Code Playgroud) 我让 Apache 在 3 个 Tomcat 服务器前充当负载平衡器。有时,Apache 会返回 503 响应,我想将其完全删除。所有 4 个服务器在 CPU、内存或磁盘方面都没有承受重大负载,所以我有点不确定是什么达到了它的限制或为什么。当所有工作人员都处于错误状态时,将返回 503s - 无论这意味着什么。以下是详细信息:
阿帕奇配置:
<IfModule mpm_prefork_module>
StartServers 30
MinSpareServers 30
MaxSpareServers 60
MaxClients 200
MaxRequestsPerChild 1000
</IfModule>
...
<Proxy *>
AddDefaultCharset Off
Order deny,allow
Allow from all
</Proxy>
# Tomcat HA cluster
<Proxy balancer://mycluster>
BalancerMember ajp://10.176.201.9:8009 keepalive=On retry=1 timeout=1 ping=1
BalancerMember ajp://10.176.201.10:8009 keepalive=On retry=1 timeout=1 ping=1
BalancerMember ajp://10.176.219.168:8009 keepalive=On retry=1 timeout=1 ping=1
</Proxy>
# Passes thru track. or api.
ProxyPreserveHost On
ProxyStatus On
# Original tracker
ProxyPass …
Run Code Online (Sandbox Code Playgroud) 我不使用 AJP 进行负载平衡;我有一个单一的Apache 2.2实例代理某些URL的单一通过AJP的Tomcat 7的实例。
当 Tomcat 关闭时,AJP 代理在第一个失败的请求时被禁用,并且在 Tomcat 恢复时不会重新启用。
是否可以指示 Apache不禁用AJP 连接,即使后端已关闭,以便代理在后端重新联机时开始工作?
这是我的 httpd.conf 的摘录:
ProxyPass /my-web-app ajp://localhost:8009/my-we-app-1.0.2
Run Code Online (Sandbox Code Playgroud)
这是后端关闭时的日志文件:
[error] (OS 10061)No connection could be made because the target machine actively refused it.
[error] ap_proxy_connect_backend disabling worker for (localhost)
[error] proxy: AJP: failed to make connection to backend: localhost
Run Code Online (Sandbox Code Playgroud)