【发布时间】:2012-05-31 20:38:06
【问题描述】:
我在 http://<server>:8080/app/portal/ 的 Tomcat 中运行了一个 Web 应用程序。
我希望全世界都能通过 URL http://<server>/portal/ 看到这个应用程序。
为此,我使用 Apache 2.2 设置了一个反向代理。根据documentation for ProxyPass,我希望反向代理能够透明地传递所有请求。我的浏览器不应该知道 Tomcat URL。
这是我的配置:
没有虚拟主机,我在 httpd.conf 中添加了这些行
<Location /portal/>
AllowOverride All
RewriteEngine On
ProxyPass http://server:8080/app/portal/
ProxyPassReverse http://server:8080/app/portal/
</Location>
当我使用 Firefox 打开 http://<server>/portal/ 时,我得到一个 302 Moved Temporarily,所有后续呼叫都从我的浏览器直接转到 http://<server>:8080/app/portal/。我的浏览器指向这个 URL。
这不是我对反向代理的期望。是我做错了配置还是我误解了反向代理的目的?我应该怎么做才能获得我想要的行为?
【问题讨论】:
-
这里的
RewriteEngine On是什么? -
好问题。我从另一个我们实际进行了重写的工作配置中复制了它。我删除了它,它的行为也一样。
标签: apache2 reverse-proxy httpd.conf proxypass