【问题标题】:Apache+Tomcat6+Struts2 redirect problemApache+Tomcat6+Struts2 重定向问题
【发布时间】:2010-01-09 16:47:27
【问题描述】:
我在 80 端口上使用 apache,它在端口 8080 上转发 tomcat6 上的所有请求。在我的应用程序中,我使用的是 struts2 框架。在 tomcat 中,我使用从 ROOT 应用程序重定向到我的应用程序“MyApp”。
当我浏览我网站上的链接时,我会看到很好的 URL,例如 www.mysite.com/order
但是当 struts 将我重定向到任何地方时,URL 采用类似 www.mysite.com:8080/MyApp/order 的形式
如何使这些网址相似?
【问题讨论】:
标签:
apache
struts2
redirect
tomcat6
【解决方案1】:
我在 Apache 和 Tomcat 之间使用 AJP connector 来实现。这是我在配置文件中使用的 sn-p:
Apache 的部分配置($APACHE_DIR/sites-available/default):
NameVirtualHost *:80
NameVirtualHost *:443
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so
JkWorkersFile /etc/apache2/workers.conf
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
<VirtualHost *:80>
ServerName brasee.com
ServerAlias www.brasee.com
JkMount /* ajp13secured
</VirtualHost>
Tomcat的部分配置(conf/server.xml):
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- Define an AJP 1.3 Connector on port 8008 -->
<Connector port="8008" protocol="AJP/1.3" redirectPort="8080" />
【解决方案2】:
你是如何进行转发的?正确的方法是使用 mod_proxy 将 Apache 设置为反向代理。有关说明,请参阅here。这样 Struts 重定向就不会有问题了。