3

我的服务器上的 8080 端口上有一些 Web 应用程序可用。

由于我的一些用户由于他们的防火墙而无法访问端口 8080,我想在我的 apache 服务器上设置一个重定向。我想要以下网址

http://dev2.test.com/tomcat/somewebapp/restofthepath

显示可访问的内容

http://dev2.test.com:8080/somewebapp/restofthepath

当然,我不希望用户输入第一个地址来查看第二个地址。

我在中添加了以下.htaccess文件/var/www

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/(tomcat)
RewriteRule ^/tomcat/(.*)$ http://dev2.test.com:8080/$1 [P,QSA,L]

但我得到这个错误/var/log/apache2/error.log

[Tue Oct 09 15:23:06 2012] [error] File does not exist:  proxy:http://dev2.test.com:8080/tomcat/

你能告诉我我应该怎么做吗?

4

2 回答 2

7

您可能应该使用mod_proxy而不是mod_rewrite.

ProxyPass /tomcat http://dev2.test.com:8000/
ProxyPassReverse /tomcat http://dev2.test.com:8000/

编辑 :

此配置必须在 httpd.conf 中。它可能位于 VirtuaHost 部分或文件的根目录中。

您必须启用 mod_proxy。这可以使用

LoadModule  proxy_module         /usr/lib/apache2/modules/mod_proxy.so
LoadModule  proxy_http_module    /usr/lib/apache2/modules/mod_proxy_http.so
于 2012-10-09T15:04:33.983 回答
2

做你所做的只会将重定向发送到端口 8080 给用户(他们不能使用)。您需要使用apache mod_proxy或不同的代理服务器。

ProxyPass /foo http://foo.example.com/bar
ProxyPassReverse /foo http://foo.example.com/bar
于 2012-10-09T15:05:08.540 回答