参考:http://blog.csdn.net/chaijunkun/article/details/6987443
apache做前端,tomcat做业务处理,通过mod_jk连接做负载平衡。
apache web服务器与tomcat容器的整合
预期目标:
使用apache服务器作为前置机,使用jk_mod作为连接器,派发任务
在linux和window环境中分别部署一套结构相同的应用,作为负载均衡服务器
在windows环境中访问应用,能够看到不同worker处理后的不同结果
1.检查环境,安装gcc,g++
其中,gcc, g++, java命令必须正确输出,表示系统当前能够编译运行c,c++,java语言!
如果提示command not found,则安装对应的功能:
首先,挂载光驱,从光驱中查询需要的服务
mount /dev/cdrom /mnt/cdr 挂载光驱
cd /mnt/cdr 进入挂载点
#find -name *gcc* 具体查询此处省略,只需按需要查找到对应的rpm的全称即可
安装rpm
#GCC
rpm -ivh ./Server/kernel-headers-2.6.18-92.el5.x86_64.rpm
rpm -ivh ./Server/compat-glibc-headers-2.3.4-2.26.x86_64.rpm
rpm -ivh ./Server/compat-glibc-2.3.4-2.26.x86_64.rpm
rpm -ivh ./Server/compat-libstdc++-33-3.2.3-61.x86_64.rpm
rpm -ivh ./Server/compat-libf2c-34-3.4.6-4.x86_64.rpm
rpm -ivh ./Server/compat-libgcc-296-2.96-138.i386.rpm
rpm -ivh ./Server/cpp-4.1.2-42.el5.x86_64.rpm
rpm -ivh ./Server/glibc-headers-2.5-24.x86_64.rpm
rpm -ivh ./Server/glibc-devel-2.5-24.x86_64.rpm
rpm -ivh ./Server/libgomp-4.1.2-42.el5.x86_64.rpm
rpm -ivh ./Server/libstdc++-devel-4.1.2-42.el5.x86_64.rpm
rpm -ivh ./Server/gcc-4.1.2-42.el5.x86_64.rpm
rpm -ivh ./Server/compat-gcc-34-3.4.6-4.x86_64.rpm
rpm -ivh ./Server/compat-gcc-34-c++-3.4.6-4.x86_64.rpm
#G++
rpm -ivh ./Server/libstdc++-4.1.2-42.el5.x86_64.rpm
rpm -ivh ./Server/gcc-c++-4.1.2-42.el5.x86_64.rpm
安装完成之后,再次执行gcc, g++命令看是否能正确输出相关信息。
2.下载apache server 和 apache-tomcat-connector并安装
下载Apache HTTP Server http://httpd.apache.org/download.cgi
【版本: httpd-2.2.25.tar.gz】
下载Tomcat Connectors JK http://tomcat.apache.org/download-connectors.cgi
【版本:tomcat-connectors-1.2.37-src.tar.gz】
将上述2个gz包都上传到linux系统上,解压到当前目录
tar -xzvf /home/hqh/httpd-2.2.25.tar.gz
tar -xzvf /home/hqh/tomcat-connectors-1.2.37-src.tar
安装HTTP SERVER(apache 服务器)
进入httpd安装目录
[root@localhost hqh]# cd /home/hqh/httpd-2.2.25
执行配置脚本
[root@localhost httpd-2.2.25]# ./configure --enable-so --enable-mods-shared=most --with-mpm=worker
编译
[root@localhost httpd-2.2.25]# make
安装apache 服务器
[root@localhost httpd-2.2.25]# sudo make install
到此,apache 服务器安装完毕!
安装完成后,会新增加/usr/local/apache2目录,该目录用来存放apache服务的相关信息
测试安装后的apache服务:
cd /usr/local/apache2/bin
./apachectl start
window下访问http://192.168.136.128/
测试成功后,开始安装apache与tomcat整合必备的连接器。
(如果访问失败,则先在linux环境适应wget访问试试,如果正常,则检查linux防火墙设置)
获取jk_mod.so
[root@localhost bin]# cd /home/hqh/tomcat-connectors-1.2.37-src
[root@localhost tomcat-connectors-1.2.37-src]# cd native
配置
[root@localhost native]# ./configure --with-apxs=/usr/local/apache2/bin/apxs
编译
[root@localhost native]# make
进入apache-2.0目录,查看mod_jk.so文件
将mod_jk.so拷贝至apache服务器的modules目录中
cp /home/hqh/tomcat-connectors-1.2.37-src/native/apache-2.0/mod_jk.so /usr/local/apache2/modules
3.配置worker
tomcat配置文件(server.xml)解读
接收ajp协议请求的配置,专门用于接收如apache web服务器发送过来的请求
【默认使用的8080端口,是处理http请求的】
编辑httpd主配置文件,加入mod_jk组件
vi /usr/local/apache2/conf/httpd.conf
#add jk connector LoadModule jk_module modules/mod_jk.so <IfModule jk_module> JkWorkersFile conf/workers.properties JkMountFile conf/uriworkermap.properties JkLogFile logs/mod_jk.log JkLogLevel warn </IfModule>
同样,在/usr/local/apache2/conf/目录下,新建workers.properties和uriworkermap.properties文件
workers.properties
# # workers.properties # # list the workers by name worker.list=loadBalanceServers, jk_watcher # localhost server 1 # linux系统上部署的服务(tomcat webapps下建了一个demo,下面有一个index.jsp) # ------------------------ worker.s1.port=8009 worker.s1.host=localhost worker.s1.type=ajp13 worker.s1.lbfactor=10 worker.s1.cachesize=5 # remote server 2 # windows系统上部署的服务(tomcat webapps下建了一个demo,下面有一个index.jsp) # ------------------------ worker.s2.port=8009 worker.s2.host=192.168.136.1 worker.s2.type=ajp13 worker.s2.lbfactor=10 worker.s2.cachesize=5 worker.loadBalanceServers.type=lb worker.loadBalanceServers.balanced_workers=s1,s2 worker.loadBalanceServers.sticky_session=false worker.jk_watcher.type=status # worker.jk_watcher.read_only=True worker.jk_watcher.mount=/admin/jk worker.retries=3
uriworkermap.properties 配置哪些资源由apache来处理,哪些由负载均衡服务器处理
# #uriworkermap.properties # #define all requests will be submitted to load balance servers #if the condition is satisfied, the filter will validate the next statement until it's not. #notice the order of the following statements # ! 意思为"否" # !/*.gif=loadBalanceServers,表示所有gif图片都不交给tomcat处理,由apache来处理 /*=loadBalanceServers /jkstatus=jk_watcher !/*.gif=loadBalanceServers !/*.jpg=loadBalanceServers !/*.tif=loadBalanceServers !/*.png=loadBalanceServers
到此,一个简单的负载均衡实验基本完成!
===========================================================================
验证:
先启动tomcat,再启动apache!
开启linux环境的tomcat服务器,windows环境的tomcat服务器(启动负载均衡服务器)
开启linux环境的apache 服务器( /usr/local/apache2/bin/apachectl start)
在window环境中,访问http://192.168.136.128/demo,会出现看到不同的效果!
如果访问失败,关闭window防火墙再试!
第一次访问:
第二次访问:
相关推荐
Apache2.2.x + Tomcat6.x + jk2.x 集群配置教程 在互联网服务中,为了...这个集群配置仅作为一个基础示例,对于大型、高并发的Web应用,可能需要更复杂的架构和工具,例如Nginx、HAProxy等作为反向代理和负载均衡器。
1. **结构介绍**:这种集群架构的核心是前端的Apache服务器,它作为反向代理和负载均衡器,接收来自客户端的请求,并根据预设策略分发到后端的Jboss或Tomcat服务器。每个Jboss或Tomcat服务器都运行着相同的应用,...
2. **反向代理负载均衡**:使用代理服务器(如Apache + JK2 + Tomcat)接收来自客户端的请求,然后根据预设的策略将请求转发给后端的Tomcat服务器,实现负载均衡。 3. **基于NAT的负载均衡**(如Linux Virtual ...
在这种配置中,多个Tomcat服务器作为应用服务器运行,而Apache作为反向代理服务器,通过负载均衡器将请求分发到各个Tomcat实例上,确保高并发情况下的性能和容错能力。 **1. Tomcat 集群介绍** Tomcat 是Apache软件...
Apache与Tomcat的整合主要依赖于Apache的mod_jk模块,这是一个负载均衡器和反向代理,它允许Apache与Tomcat之间进行通信。通信协议通常是基于JK的,包括JK1和已被弃用的JK2。在这个过程中,Apache通过mod_jk模块将...
这两份配置文件是用于实现Apache与Tomcat之间的通信,也就是我们常说的Apache作为前端服务器,Tomcat作为后端应用服务器的“负载均衡”或“反向代理”设置。 首先,让我们详细了解`jk2.properties`文件。这个文件是...
**Tomcat** 是一个基于 **Java EE** 标准的轻量级Web服务器,它由 **Apache软件基金会** 的 **Jakarta项目** 发起并维护。由于其开放源代码的特性以及优秀的稳定性,Tomcat在Java开发者社区中拥有极高的声誉,被广泛...
1. **反向代理**:mod_JK可以将来自Apache的HTTP请求转发到Tomcat,使得Tomcat能够处理动态内容,而Apache处理静态内容,这样可以提高整体系统的性能。 2. **负载均衡**:通过mod_JK,可以将请求分配到多个Tomcat...
7. **jakarta-tomcat-connectors-jk2-2.0.2-src.tar.gz**: 这是Tomcat连接器的源代码,用于与Apache HTTP Server集成,提供负载均衡和反向代理功能,但同样,这在LAMP环境中不是标准组件。 8. **LAMP-php库文件**: ...