我们在前端有 apache2 代理服务器,在后端运行几个应用程序服务器,其中一个有缺陷的应用程序服务器挂起并重新启动,这需要 2-4 分钟,在此期间,所有其他应用程序服务器也挂起,因为它们都通过同一个代理服务器。
以下是 Apache 代理配置:
ProxyPass /app1 http://backend1:8080/
ProxyPassReverse /app1 http://backend1:8080/
ProxyPass /app2 http://backend2:8080/
ProxyPassReverse /app2 http://backend2:8080/
ProxyPass /app3 http://buggy-backend3:8080/
ProxyPassReverse /app3 http://buggy-backend3:8080/
是否有任何 apache 指令,检查后端是否没有响应,是否应忽略它,并继续为其他服务。
非常感谢您的帮助。
佤族
答案1
我认为您想使用像 haproxy 这样专为此类事情设计的东西。apache mod_proxy_balancer 也可以满足您的需要。
编辑:我怀疑 apache 挂起的原因是超时设置为相对较大的数字,并且 apache 将运行等待挂起的应用服务器的子进程。
代理超时将为您提供一种让 apache 更快地超时后端的方法。
您还可以考虑增加 apache 允许生成的子进程的数量并增加该数量。