转发端口80到8080失败

我试图转发一个端口从80到8080(默认为tomcat)。 下面是我添加到httpd文件。

<VirtualHost www.example.com:80> ProxyPreserveHost On ProxyRequests Off ServerName www.example.com ServerAlias example.com ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ </VirtualHost> 

增加这个之后,没有任何改变的迹象。 代码有什么问题吗?
Centos 5.9
Apache 2.2
tomcat 7
WHM /的cPanel。

更新: 在这里输入图像说明 我的目标域名是www.99rounds.com:80直接到:8080

更新2添加了答案中的代码,并删除了两行日志。 我得到: 在这里输入图像说明 请注意,如果我强制centos有内置的mod_proxy支持:loadModule …它会给我错误说它的内置。

我有一个关于如何在这里设置Apache反向代理的详细答案。

看看你提供的configuration:

 <VirtualHost www.example.com:80> ProxyPreserveHost On ProxyRequests Off ServerName www.example.com ServerAlias example.com ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ </VirtualHost> 

我会build议下面的代替。 我假设一些东西,如ErrorLog和CustomLog,但这是我如何设置。 我相信的关键是ServerNameServerAlias结合<VirtualHost *:80>

 <VirtualHost *:80> ServerName www.99rounds.com ServerAlias 99rounds.com www.99rounds.com ErrorLog /var/log/apache2/www.99rounds.com.error.log CustomLog /var/log/apache2/www.99rounds.com.access.log combined # Settings for Apache Reverse Proxy <IfModule mod_proxy.c> # Proxy specific settings ProxyRequests Off ProxyPreserveHost On <Proxy *> AddDefaultCharset off Order deny,allow Allow from all </Proxy> ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ </IfModule> </VirtualHost> 

编辑:另外请确保您的服务器上启用了mod_proxymod_proxy_http

 sudo a2enmod proxy sudo a2enmod proxy_http 

Tomcat和其他应用程序服务器发布可用于映射来自HTTP服务器的请求的AJP端口。 要做到这一点,你必须创build一个这样的“工人文件”:

 # server.workers.properties worker.list=tomcat-server worker.tomcat-server.type=ajp13 worker.tomcat-server.host=localhost worker.tomcat-server.port=8009 

8009是Tomcat服务器中AJP端口的默认值。 你可以在$ TOMCAT_DIR $ / conf / server.xml中find这个值。 那么你必须在HTTPconfiguration文件中指出以前的文件:

 JkWorkersFile /location/of/the/file/server.workers.properties <VirtualHost www.example.com:80> ServerName www.example.com ServerAlias example.com DocumentRoot /srv/www/ JkMount /* tomcat-server <Directory /> Options +FollowSymLinks Order allow,deny Allow from all </Directory> </VirtualHost> 

这个configuration会把www.example.com:80的所有请求传递给AJP 8009端口,所以Tomcat服务器将会得到这些请求,并处理它们。

在DocumentRoot中设置的path中,您必须将每个应用程序的链接放在Tomcat的webapps目录中,因为如果不这样做,HTTP服务器将无法加载资源文件,如CSS和JS。