我使用 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
简而言之:
- 为某些别名添加代理例外,例如 http_errors(必须放在实际代理规则之前)
- 将别名映射到真实路径(必须存在且 Apache 可以访问)
- 将给定的 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/