如果您通过反向代理访问文件并且未找到该文件(返回 404),apache2/mod_proxy 是否可以执行另一个反向代理自动在另一台服务器上检查该文件?
工作流程如下:1. 请求执行反向代理的服务器上的文件 2. 服务器在服务器 A 上查找文件 3. 在服务器 A 上找不到文件,因此检查服务器 B 4. 在服务器 B 上找到文件,因此返回文件。
我已经知道其他产品可以做到这一点,但我很好奇 mod_proxy 是否可以做到这一点?
答案1
有办法,但不要使用 404,说实话这是一个坏主意。
首先,设置最大尝试次数设置为大于 1 的数字。设置无故障转移到离开。
然后,在不保存您想要的对象的后端,当您希望它尝试下一个时,您会返回 503。(503 = HTTP_SERVICE_UNAVAILABLE)
但这在现实生活中行不通。Apache 无法猜测什么是真正的 503 错误,什么是“尝试其他服务器”错误。换句话说,它会破坏真正的 404 检测。没有办法发出 404“页面未找到”错误,因为在 Apache 放弃尝试所有服务器后,您总是会向用户返回“服务不可用”错误。
此外,在我看来,你在这里尝试做的事情不是一个好主意。你应该在 Apache 代理上配置适当的映射,并根据请求的 URL 分配服务器。
http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#forwardreverse