Apache:将特定 URL 重定向到不同端口上的本地服务器

Apache:将特定 URL 重定向到不同端口上的本地服务器

这看起来很简单,但我无法让它发挥作用。

我有一个非常简单的网络服务器,只需要做两件事:

  1. example.com/status.html 返回本地文件(有效)
  2. example.com/atom 将在同一台机器上运行的防火墙服务器的内容重定向到端口 4000

这不起作用:

RewriteRule ^$ http://localhost:4000

从请求者的角度(即在客户端的机器上)将流量重定向回 l​​ocalhost:4000。

我对 VirtualHost 的理解有限,它指的是 atom.example.com,而不是 example.com/atom

我想我必须使用 ProxyReverse,但我找不到正确的组合。

更新:尝试 Shane Madden 给出的 ProxyPass/ProxyReverse 建议会在错误日志文件中产生以下结果:

[Thu Mar 15 11:59:15 2012] [error] (13)Permission denied: proxy: HTTP: attempt to connect to 127.0.0.1:4000 (localhost) failed
[Thu Mar 15 11:59:15 2012] [error] ap_proxy_connect_backend disabling worker for (localhost)
[Thu Mar 15 11:59:17 2012] [error] proxy: HTTP: disabled connection for (localhost)

(本地服务器肯定是运行在127.0.0.1:4000上)

答案1

除非有理由,否则不要使用 mod_rewrite。

尝试一下这个(将其放入<VirtualHost>块中):

ProxyPass /atom http://127.0.0.1:4000/atom
ProxyPassReverse /atom http://127.0.0.1:4000/atom

相关内容