2011-09-09 114 views
0

我想配置我的网站部分使用Apache,部分使用Tomcat。让我解释。当用户导航到我的域名时(让我的域名称为“abc”)..所以abc.com,我希望Apache服务于index.html页面。从那里,如果他点击任何静态页面,那么Apache应该为该页面提供服务。Apache + Tomcat + Struts 2配置

但是,如果他点击动态链接,例如成员需要登录的页面,那么我会让Tomcat接管。

部署详细信息:
我的tomcat web应用程序已被部署为ROOT.war。所以我可以打我的web应用程序在tomcat通过去abc.com:8080/memberlogon

在我的httpd.conf我有一个像下面这样的行,现在所有的东西都转发给tomcat。

<Location /> 
    ProxyPass ajp://localhost:8009/ 
</Location> 

如何只转发struts2相关URL到tomcat? 我使用瓷砖,所以我不访问任何基础的jsp。

请让我知道如果我能提供任何额外的信息,可以帮助

回答

0

嗯,我不知道的mod_proxy如何处理这一点,但它可以很容易地与mod_jk的完成。我的公司不使用mod代理,因为它有一些安全问题,不会通过PCI一致性测试。

这可以通过在您的httpd.conf文件中根据您希望使用mod_jk提供的tomcat的扩展名来设置开关来完成。

例如,有Tomcat处理JSP文件,你将有声明:

# send all requests ending in .jsp to worker1 
JkMount /*.jsp worker1 

,并确保Apache是​​服务了所有静态或HTML文件是这样的:

# do not send requests ending with .html to worker1 
JkUnMount /*.html worker1 

这里很少有网站可以帮您启动配置选项:

Quick Start HowTo

Apache HowTo

The Apache Tomcat Connector - Reference Guide

How do I connect Apache to Tomcat using the mod_jk module?

+0

感谢罗素的答复。我浏览了链接,我想我明白需要做什么。我开始朝这个方向前进,然后开始阅读其他文章。显然,tomcat本身加载静态内容并不算太坏。对于小型应用程序而言,这没有太大的区别。因此,想到让tomcat加载所有内容并让proxypass将所有内容转发给tomcat。
我想知道,你知道如果由tomcat提供的页面是由搜索引擎机器人索引的吗? – sethu

+0

没问题,我也不是很熟悉proxypass的功能,但是我们在我们的服务器上没有使用mod_jk的apache + tomcat的SEO问题,这是一个透明的配置,机器人不关心哪个服务器正在渲染页面(使用proxypass应该是相同的)。在tomcat robots.txt上快速搜索google会得到一些结果,例如:http://www.beaconhill.com/solutions/kb/tomcat/integrate-apache-and-tomcat.html –