我在 Windows Server 2008 R2 上有一个 Apache 2.4 服务器,用作反向代理。它一直运行良好,并为大约 15 个虚拟主机提供服务。每当主机出现故障时,我想显示一个网页,指示服务器暂时关闭。我将自定义错误文件放在 htdocs 文件夹中名为 errors 的文件夹中。我在 httpd.conf 文件中有以下指令:
ErrorDocument 500 /errors/default.html
ErrorDocument 502 /errors/default.html
ErrorDocument 503 /errors/default.html
ErrorDocument 504 /errors/default.html
ErrorDocument 400 /errors/default.html
ErrorDocument 404 /errors/default.html
ErrorDocument 408 /errors/default.html
<Directory "C:/Program Files/Apache Software Foundation/Apache2.4/htdocs/errors">
Order deny,allow
Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)
我关闭了一台代理服务器来测试错误页面,我看到以下内容:
服务不可用 由于维护停机或容量问题,服务器暂时无法为您的请求提供服务。请稍后再试。
此外,在尝试使用 ErrorDocument 处理请求时遇到 503 Service Unavailable 错误。
如果我使用文本错误消息,例如“服务器当前离线”,那么我确实会看到该文本显示。如果我引用外部 Web 服务器来提供页面,那么我会看到从该服务器提供的页面。几乎就好像 Apache 服务器只是代理请求,无法为本地错误页面提供服务。
我猜我需要添加或更改虚拟主机条目以允许 Apache 服务器提供本地页面(错误页面),但由于服务器仅由 DNS 中的 IP 引用,我不知道该怎么做(它是使用命名主机)。我只是假设错误页面将由 Apache 正确提供而无需额外配置(除了允许对包含错误页面的文件夹的权限并在 ErrorDocument 条目中引用它们)。
我错过了什么?自定义错误文档的设置看起来很简单,但我无法从代理本身提供它们。