将特定站点从 apache 重定向到 tomcat7

Redirect specific sites to tomcat7 from apache

在继续之前,让我先声明一下,我对应用程序协议比较陌生,并不完全了解这个世界是如何运作的...:-)

情况是这样的:

  1. 我有几个站点由 apache2.4.7 提供服务并且这些站点工作正常 在端口 80 上访问 apache 时很好。
  2. 另一方面,我只有一个站点由 tomcat7 提供服务,它是 在端口 8080 上访问 Tomcat 时也能正常工作。
  3. 我试图将流量从端口 80 上的 apache 重定向到端口 8080 上 tomcat 上的特定站点,但无法做到(收到 404 错误消息)。
  4. 我也启用了 proxyproxy_http 模块,但没有 改变了

这是为 apache 启用站点的文件:

<VirtualHost 10.10.61.10:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www
        ServerName 10.10.61.10

        <Directory />
                Options None
                AllowOverride None
        </Directory>

        Alias /racktables /var/www/racktables/wwwroot/
        <Directory /var/www/racktables/wwwroot>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

<VirtualHost 10.10.61.10:80>
        ProxyPreserveHost On
        ProxyRequests Off
        ProxyPass /app1/ http://10.10.61.10:8080/app1/
        ProxyPassReverse /app1/ http://10.10.61.10:8080/app1/
</VirtualHost>

我看过的所有资料都只提到添加上面关于proxy*参数的配置,仅此而已。

但是,当查看 apache 的 access.log 时,我得到以下信息:

10.10.61.62 - - [10/Nov/2015:11:32:00 -0300] "GET /app1 HTTP/1.1" 404 410 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:42.0) Gecko/20100101 Firefox/42.0"

我错过了什么?有什么想法或提示吗?

谢谢!

卢卡斯

好吧,经过一番挖掘,解决方案是将所有内容都包含在同一个虚拟主机下,例如:

<VirtualHost 10.10.61.10:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www
        ServerName 10.10.61.10

        <Directory />
                Options None
                AllowOverride None
        </Directory>

        Alias /racktables /var/www/racktables/wwwroot/
        <Directory /var/www/racktables/wwwroot>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ProxyPreserveHost On
        ProxyRequests Off
        ProxyPass /app1/ http://10.10.61.10:8080/app1/
        ProxyPassReverse /app1/ http://10.10.61.10:8080/app1/

</VirtualHost>

此致!

卢卡斯