我的服务器端口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/
你能告诉我应该怎么做吗?
答案 0 :(得分: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
答案 1 :(得分:2)
执行您所做的操作只会向用户发送重定向到端口8080(他们无法使用)。您需要使用apache mod_proxy或其他代理服务器。
ProxyPass /foo http://foo.example.com/bar
ProxyPassReverse /foo http://foo.example.com/bar