Apache2.2.4多个虚拟主机+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服务,一个是8119用于监听来自于apache的请求。当apache收到jsp或者servlet请求时,就向tomcat 的8009端口发送请求,交由tomcat处理后,再返回给apache,由apache返回给客户。
关于Apache 和 Tomcat 的安装,这里不再说明。
一、Apache2.2.4配置多个虚拟主机
1、在httpd.conf文件中,找到下面这一行,把前面的#号去掉,启用 http-vhosts.conf 配置文件:
Include conf/extra/httpd-vhosts.conf
2、找到 conf/extra/httpd-vhosts.conf 配置文件,做如下配置:
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.e.g.somenet.com
DocumentRoot "D:\apps\quickLMS"
ServerName quick.edusaas.com
JkMount /* controller
ErrorLog logs/quick-error_log
CustomLog logs/quick-access_log common
DirectoryIndex index.jsp
<Directory "D:\apps\quickLMS">
AllowOverride None
Options FollowSymLinks
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.e.g.somenet.com
DocumentRoot "D:\apps\sanyLMS"
ServerName sany.edusaas.com
JkMount /* controller
ErrorLog logs/sany-error_log
CustomLog logs/sany-access_log common
DirectoryIndex index.jsp
<Directory "D:\apps\sanyLMS">
AllowOverride None
Options FollowSymLinks
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
#一个虚拟主机,对应一个 <VirtualHost *:80>......</VirtualHost> 节点。
二、Tomcat配置多个虚拟主机
1、在Tomcat的server.xml配置文件中,增加Host节点
<Host name="quick.edusaas.com" appBase="D:\apps\quickLMS" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="." />
</Host>
<Host name="sany.edusaas.com" appBase="D:\apps\sanyLMS" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="." />
</Host>
三、Apache 整合 Tomcat
1、下载 mod_jk.so ,放到 modules 目录下,
下载地址 http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/
下载时,注意 mod_jk 和 apache 的版本,选择对应的版本。
1、在Apache的 conf 目录下 新建 workers.properties 配置文件,做如下配置:
worker.list=controller,tomcat1,tomcat2,status
#==========tomcat1============
worker.tomcat1.port=8119
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1
#==========tomcat2============
worker.tomcat2.port=8219
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1
#==========controller 负载均衡控制器=========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2
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-apache-2.2.4.so
JkWorkersFile conf\workers.properties
JkMountFile conf\uriworkermap.properties
JkLogFile logs\mod_jk.log
JkLogLevel warn
四、配置完成,启动Tomcat 和 Apache,就可以通过以下网址访问:
quick.edusaas.com
sany.edusaas.com
zohl.edusaas.com
而且在访问 jsp、 *.do、 servlet等地址时,也不用加tomcat的端口号了。
测试时,如果没有实际两个域名,可以将上面的测试域名 配置到 系统的 C:\Windows\System32\drivers\etc\hosts 文件中:
127.0.0.1 quick.edusaas.com
127.0.0.1 sany.edusaas.com
127.0.0.1 zohl.edusaas.com
这样在地址栏可以输入上面的域名访问测试站点。
分享到:
相关推荐
本文档详细介绍了如何在Windows XP系统中配置Apache2.2.4、tomcat6和php5,使其能够在一个环境中稳定共存并协同工作。这种配置通常用于开发环境或小型Web服务器部署场景,尤其是当需要支持多种Web应用和技术栈时。 ...
通过这样的配置,Apache服务器能够通过mod_jk模块与多个Tomcat实例通信,实现负载均衡和高可用性。你可以根据需要调整workers.properties中的参数,如负载策略、错误重试次数等,以优化集群性能。同时,监控服务器的...
Apache Tomcat 整合教程主要涉及的是如何在一台服务器上设置多台Apache Tomcat服务器,以便托管多个独立的Web应用程序,通常用于实现高可用性和负载均衡。以下是对整合过程的详细解释: 首先,你需要下载并安装...
每个虚拟主机配置中,使用`JkMount`指令将所有请求映射到相应的Tomcat实例,如`tomcat1`或`tomcat2`。 5. `DirectoryIndex`和`DocumentRoot`指令定义了默认索引文件(如`index.jsp`)和每个虚拟主机的应用根目录。 ...
4. **配置虚拟主机**: 在Apache的虚拟主机配置中,使用`JkMount`和`JkUnmount`指令将特定URL映射到Tomcat处理。比如,所有以`.jsp`结尾的请求都将转发到Tomcat: ```apacheconf *:80> ServerName example.com ...