代理服务器关闭时,Apache 反向代理错误页面

代理服务器关闭时,Apache 反向代理错误页面

我使用 Apache2 作为 tomcat 的反向代理,我的配置如下:

ProxyRequests Off

ProxyPass        / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

我的问题是:我是否可以配置 Apache 以便在 Tomcat 关闭时显示礼貌页面(“建设中”的 HTML 静态页面)?

答案1

您可以使用 Apache錯誤文檔指令来执行此操作。您应该使用 URL 指向您的 ErrorDocument,否则,如果您使用文件系统引用,则在尝试查找它时会收到额外的 503。

ErrorDocument 503 http://somehost.tld/errors/503.html

答案2

这是无需额外服务器或其他端口的解决方案:

ProxyPass /http_errors/ !

#Actual proxy config, must be below exception!
ProxyPass / ajp://myserver:12345/

Alias /http_errors/ /var/www/http/
ErrorDocument 503 /http_errors/503.html

简而言之:

  1. 为某些别名添加代理例外,例如 http_errors(必须放在实际代理规则之前)
  2. 将别名映射到真实路径(必须存在且 Apache 可以访问)
  3. 将给定的 HTTP 状态代码映射到别名中的特定文件

因此,对于上述设置,出现问题时显示的文件是 /var/www/http/503.html。

答案3

当 Apache 无法连接到 Tomcat 时,它会抛出 503“服务不可用”错误。您可以创建一个“好用”的 503 错误页面。

ErrorDocument 503 /var/www/html/error/gonefishing.html

答案4

您还可以阻止所有/error/请求被代理到后端服务器:

ProxyPass /error/ !

ProxyPass        / http:// localhost:8080/
ProxyPassReverse / http:// localhost:8080/

相关内容