apache httpd与tomcat集群搭建

时间:2022-04-25 16:55:58

一、httpd与单个tomcat集成


1、先参考http://blog.csdn.net/sinat_32379713/article/details/50445797安装apache http server.
2、通过下面路径下载tomcat6及tomcat connector.
http://mirror.bit.edu.cn/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.41-src.tar.gz
http://mirrors.hust.edu.cn/apache/tomcat/tomcat-6/v6.0.44/bin/apache-tomcat-6.0.44.tar.gz
解压缩安装
$ gzip -d tomcat-connectors-1.2.41-src.tar.gz
$ tar xvf tomcat-connectors-1.2.41-src.tar
$ cd tomcat-connectors-1.2.41-src/native/
$ ./configure --with-apxs=/usr/local/apache2/bin/apxs
$ make  
$ cp ./apache-2.0/mod_jk.so /usr/local/apache2/modules/ 
$ gzip -d apache-tomcat-6.0.44.tar.gz
$ tar xvf apache-tomcat-6.0.44.tar
$ mv apache-tomcat-6.0.44 /usr/local/tomcat6       #确定安装了jdk或jre且配置了环境变量


3、配置
$ cd /usr/local/apache2/conf
$ vim workers.properties


添加如下内容:


worker.list=tomcat1                                              #tomcat节点,如多个用","分割  
worker.tomcat1.type=ajp13                                        #ajpv13协议与Tomcat进程通讯  
worker.tomcat1.host=localhost                                    #IP  
worker.tomcat1.port=8009                                         #ajp端口
worker.tomcat1.cachesize=10                                      #指定缓存大小  
worker.tomcat1.cache_timeout=600                          #指定worker1的cache中保留一个打开的socket的时间  
worker.tomcat1.socket_keepalive=1                                #KEEP_ALIVE信息,心跳信息
worker.tomcat1.socket_timeout=300                                #socket连接超时


$ vim mod_jk.conf


添加如下内容:


LoadModule jk_module modules/mod_jk.so


#workers.properties的位置  
JkWorkersFile /usr/local/apache2/conf/workers.properties    
#指定jk的日志输出文件       
JkLogFile /usr/local/apache2/logs/mod_jk.log  
#指定日志级别                     
JkLogLevel info              
#指定日志输出的时间戳格式                                    
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"         
#JkOptions指示发送给SSL密钥大小                 
JkOptions  +ForwardKeySize +ForwardURICompat -ForwardDirectories  
#指定日志中时间戳后面的内容:%w:工作的tomcat实例 %V:目标ip %T:耗时   
JkRequestLogFormat "%w %V %T"
#路径模式指定给特定节点处理                                    
JkMount /servlet/*  tomcat1  
JkMount /*.jsp tomcat1


$ vim httpd.conf


在文件最后添加一行
Include /usr/local/apache2/conf/mod_jk.conf


4、启动
$ sh /usr/local/tomcat6/bin/startup.sh

$ sh /usr/local/apache2/bin/apachectl start


浏览器访问80 和 8080端口看到的页面应该是一样的


二、apache与tomcat集群


1、准备好环境,实例为1*apache + 2*tomcat


2、修改apache httpd配置


$ cd /usr/local/apache2/conf
$ vim workers.properties


修改为如下内容:

worker.list=controller


#指定worker1使用ajpv13协议与Tomcat进程通讯  
worker.worker1.type=ajp13        
#指定worker1的ip                                 
worker.worker1.host=localhost      
#指定worker1的端口                                
worker.worker1.port=8009           
#指定worker1的缓存大小                                
worker.worker1.cachesize=10      
#指定worker1的cache中保留一个打开的socket的时间                                 
worker.worker1.cache_timeout=600        
#心跳检测                         
worker.worker1.socket_keepalive=1                                
#socket连接超时是长
worker.worker1.socket_timeout=300                                
#负载均衡因子
worker.worker1.lbfactor=1


worker.worker2.type=ajp13
worker.worker2.host=10.202.10.25
worker.worker2.port=8009
worker.worker2.cachesize=10
worker.worker2.cache_timeout=600
worker.worker2.socket_keepalive=1
worker.worker2.socket_timeout=300
worker.worker2.lbfactor=1

worker.controller.type=lb
worker.controller.balanced_workers=work1,worker2
worker.controller.sticky_session=false
worker.controller.sticky_session_force=1
#worker.controller.sticky_session=1


$ vim mod_jk.conf


修改为如下内容:


LoadModule jk_module modules/mod_jk.so


JkWorkersFile /usr/local/apache2/conf/workers.properties
#指定workers.properties的位置  
JkLogFile /usr/local/apache2/logs/mod_jk.log
#指定jk的日志输出文件  
JkLogLevel info
#指定日志级别  
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
#指定日志输出的时间戳格式  
JkOptions  +ForwardKeySize +ForwardURICompat -ForwardDirectories
#JkOptions指示发送给SSL密钥大小  
JkRequestLogFormat "%w %V %T"
#指定日志中时间戳后面的内容:%w:工作的tomcat实例 %V:目标ip %T:耗时  
JkMount /servlet/*  controller
JkMount /*.jsp controller


3、修改tomcat配置


$ vim /usr/local/tomcat6/conf/server.xml


<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker1">


      <!--For clustering, please take a look at documentation at:
          /docs/cluster-howto.html  (simple how to)
          /docs/config/cluster.html (reference documentation) -->
      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>


...


4、分别启动apache 跟 两个tomcat