将特定站点从 apache 重定向到 tomcat7
Redirect specific sites to tomcat7 from apache
在继续之前,让我先声明一下,我对应用程序协议比较陌生,并不完全了解这个世界是如何运作的...:-)
情况是这样的:
- 我有几个站点由 apache2.4.7 提供服务并且这些站点工作正常
在端口 80 上访问 apache 时很好。
- 另一方面,我只有一个站点由 tomcat7 提供服务,它是
在端口 8080 上访问 Tomcat 时也能正常工作。
- 我试图将流量从端口 80 上的 apache 重定向到端口 8080 上 tomcat 上的特定站点,但无法做到(收到 404 错误消息)。
- 我也启用了
proxy
和 proxy_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>
此致!
卢卡斯
在继续之前,让我先声明一下,我对应用程序协议比较陌生,并不完全了解这个世界是如何运作的...:-)
情况是这样的:
- 我有几个站点由 apache2.4.7 提供服务并且这些站点工作正常 在端口 80 上访问 apache 时很好。
- 另一方面,我只有一个站点由 tomcat7 提供服务,它是 在端口 8080 上访问 Tomcat 时也能正常工作。
- 我试图将流量从端口 80 上的 apache 重定向到端口 8080 上 tomcat 上的特定站点,但无法做到(收到 404 错误消息)。
- 我也启用了
proxy
和proxy_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>
此致!
卢卡斯