Apache2.2多个虚拟主机+Tomcat6多个虚拟主机整合配置
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Apache2.2多个虚拟主机+Tomcat6多个虚拟主机整合配置
Apache与Tomcat介绍
Apache是当前使用最为广泛的WWW服务器软件,具有相当强大的静态HTML处理的能力。
Tomcat服务器是一个免费的开放源代码的Web应用服务器,它是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。
由于有了Sun的参与和支持,最新的Servlet和JSP 规范总是能在Tomcat中得到体现,Tomcat5支持最新的Servlet 2.4和JSP 2.0规范。
因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。
Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。
为什么需要整合
整合的最主要原因是为了在现有的硬件条件下提供最大的负载。
如果单独使用Tomcat做JSP服务器,在工作效率上会存在问题,Tomcat处理静态HTML的能力不如Apache,并且所能承受的最大并发连接数也有一定的限制;
在测试中,当并发连接较多时,Tomcat就会处于“僵死”状态,对后继的请求连接失去响应。
所以现在提出一个“整合”解决方案:将html与jsp的功能部分进行明确分工,让tomcat 只处理jsp部分,其它的由apache这个web server处理。
Apache与Tomcat各司其职,那么服务器的整体效率就能够得到提升。
整合的基本原理
作为Apache下面的子项目,Tomcat 与Apache之间有着天然的联系。
在实际操作中,主要是Apache作为主服务器运行,当监听到有jsp或者servlet的请求时,将请求转发给tomcat 服务器,由tomcat服务器进行解析后,发回apache,再由apache发回用户。
在tomcat中有两个监听的端口,一个是8080用于提供web服务,一个是8009用于监听来自于apache的请求。
当apache收到jsp或者servlet请求时,就向tomcat 的8009端口发送请求,交由tomcat处理后,再返回给apache,由apache返回给客户。
关于Apache 和Tomcat 的安装,这里不再说明。
一、Apache2.2配置多个虚拟主机
1、在httpd.conf文件中,找到下面这一行,把前面的#号去掉,启用http-vhosts.conf 配置文件:
Include conf/extra/httpd-vhosts.conf
2、找到conf/extra/httpd-vhosts.conf 配置文件,做如下配置:
<VirtualHost *:80>
ServerAdmin webmaster@
DocumentRoot "F:/develop/www/host11"
ServerName
ServerAlias *
JkMount /* controller #controller该处理器,稍后在conf\workers.properties配置文件中配置,
如果不和tomcat整合,可以不要这一行
ErrorLog "logs/host11-error.log"
CustomLog "logs/host11-access.log" common #这里配置欢迎首页面
DirectoryIndex index.html index.htm index.jsp
<Directory "F:/develop/www/host11">
Options FollowSymLinks #不允许别人修改我们的页面
AllowOverride None #设置访问权限
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@
DocumentRoot "F:/develop/www/host12"
ServerName
ServerAlias *
JkMount /* controller #controller该处理器,稍后在conf\workers.properties配置文件中配置,如果不和tomcat整合,可以不要这一行
ErrorLog "logs/host12-error.log"
CustomLog "logs/host12-access.log" common #这里配置欢迎首页面
DirectoryIndex index.html index.htm index.jsp
<Directory "F:/develop/www/host12">
Options FollowSymLinks #不允许别人修改我们的页面
AllowOverride None #设置访问权限
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
#一个虚拟主机,对应一个<VirtualHost *:80>......</VirtualHost> 节点。
二、Tomcat配置多个虚拟主机
1、在Tomcat的server.xml配置文件中,增加Host节点
<Host name="" debug="0" appBase="F:/develop/www/host11" unpackW ARs="true" autoDeploy="true">
<Context path="" docBase="."/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="host11_log." suffix=".txt" pattern="common" resolveHosts="false"/>
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="host11_log." suffix=".txt" timestamp="true"/>
</Host>
<Host name="" debug="0" appBase="F:/develop/www/host12" unpackW ARs="true" autoDeploy="true">
<Context path="" docBase="."/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="host12_log." suffix=".txt" pattern="common" resolveHosts="false"/>
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="host12_log." suffix=".txt" timestamp="true"/>
</Host>
2、要配JNDI数据源,可以扩展Context节点。
三、Apache 整合Tomcat
1、下载mod_jk.so ,放到modules 目录下,
下载地址/dist/tomcat/tomcat-connectors/jk/binaries/windows/
下载时,注意mod_jk 和apache 的版本,选择对应的版本。
1、在Apache的conf 目录下新建workers.properties 配置文件,做如下配置:
worker.list=controller,status
#========tomcat1========
worker.tomcat1.port=8009
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1
#========controller,负载均衡控制器========
worker.controller.type=lb
worker.retries=3
worker.controller.balance_workers=tomcat1
worker.controller.sticky_session=1
worker.status.type=status
#tomcat 可以配置多个,这里的配置有点类似Apache + Tomcat 整合集群配置。
2、在Apache的conf 目录下新建uriworkermap.properties 配置文件,做如下配置:
/*=controller
/jkstatus=status
!/*.gif=controller
!/*.jpg=controller
!/*.png=controller
!/*.css=controller
!/*.js=controller
!/*.htm=controller
!/*.html=controller
#这里设置的是过滤规则,哪些资源文件交给controller处理,剩下的由Apache处理。
3、配置Apache的conf 目录下httpd.conf 配置文件,在末尾增加如下配置:LoadModule jk_module modules\mod_jk.so
JkWorkersFile conf\workers.properties
JkMountFile conf\uriworkermap.properties
JkLogFile logs\mod_jk.log
JkLogLevel warn
四、配置完成,启动Tomcat 和Apache,就可以通过以下网址访问:
而且在访问jsp、*.do、servlet等地址时,也不用加tomcat的端口号了。
测试时,如果没有实际两个域名,可以将上面的测试域名配置到系统的C:\Windows\System32\drivers\etc\hosts 文件中:
127.0.0.1
127.0.0.1
这样在地址栏可以输入上面的域名访问测试站点。