我想知道 ProxyPass 是否有效。
ProxyPass /dontexist.php http://localhost:8888/allo.html
ProxyPassReverse /dontexist.php http://localhost:8888/allo.html
当我这样做时,它没有返回 allo.html 的内容,而是返回了 404 错误。这是否意味着代理不起作用?
答案1
如果代理不工作,您可能会收到502
响应代码。
如果您设置LogLevel debug
然后检查您的 Apache error_log
,您就会非常清楚其行为是什么。
您还应该验证您是否可以访问端口 8888 上的 HTTP 服务器,以及它是否响应 /allo.html:
curl http://localhost:8888/allo.html
如果您收到 200 响应,则您的代理不工作(因为它返回 404)。
ProxyPass/ProxyPassReverse 的第一个参数是path
,我个人从未使用它给出包含文件名的路径(但我认为我已经通过 mod_rewrite 使用 [P] 标志完成了它。这很可能是你的问题。
我所见过(并使用过)的 ProxyPass 的典型格式指定不包含文件名的路径,例如:
ProxyPass / http://localhost:8888/
(也许其他人能够根据经验澄清这一特定的细微差别)