我有一个非 Apache Web 服务器在端口 8000 上运行,但无法从企业防火墙后面访问。因此,我想使用我的 Apache 2 服务器作为此其他 Web 服务器的代理。我尝试使用:
RewriteEngine On
RewriteRule /.* http://buildbot.synergy-foss.org:8000/builders/ [PT]
...但是这不起作用;我得到:
错误的请求
您的浏览器发送了一个该服务器无法理解的请求。
但是,它运行良好[R]
。
更新:
此外,使用时ProxyPass
,我收到此错误:
禁止
您无权访问此服务器上的/。
答案1
mod_rewrite
除非有理由,否则我不建议使用代理;mod_rewrite
可能更强大,但听起来你不需要它。例如,听起来你只是想要以下内容:
# Does't disable ProxyPass; but will disable everything you're not using
ProxyPass off
# Always setup a reverse proxy so that Apache can rewrite the URL
ProxyPass / http://buildbot.synergy-foss.org:8000/builders/
ProxyPassReverse / http://buildbot.synergy-foss.org:8000/builders/
确保启用 mod_proxy (文档在这里) 也一样。祝你好运!
答案2
您需要的是[P]
标志,而不是[PT]
。 [PT]
重写规则上写的是“通过”,允许其他处理程序进行处理(Alias
,Redirect
等等)。
你也可以使用以下方法获得相同的结果mod_proxy,从类似以下内容开始:
ProxyPass / http://buildbot.synergy-foss.org:8000/builders/