Apache+tomcat集群+session复制作者:吴钢奇时间:2010/09/23MSN:w7374520@目标:在服务器上搭建1个apache+4个tomcat应用,tomcat之间实现session复制。
Tomcat解析所有的网页,apache此刻的作用就是做代理。
参考了很多网上好文档,非常感谢前人无私奉献,谢谢!1、环境硬件:一个四核3.0CPU,4G内存,200GSATA硬盘系统:Redhat AS 5.3源码包下载:1、Httpd下载/apache//httpd/httpd-2.2.16.tar.gz2、Tomcat下载//tomcat/tomcat-7/v7.0.2-beta/bin/apache-tomcat-7.0.2.tar.gz3、mod_jk 下载地址:/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.30/tomcat-connectors-1.2.30-src.tar.gz2、安装apache[root@adman ~]# cd /usr/local/src/ #进入源码包下载目录,这个可以随便定[root@adman src]# tar zxvf httpd-2.2.16.tar.gz #解压缩[root@adman src]# cd httpd-2.2.16 #进入解压目录[root@adman httpd-2.2.16]# ./configure --prefix=/usr/local/apache2 \> --enable-cache \ #configure参数根据自己的需要添加> --enable-mem-cache \ —可以使用help获得相关参数> --with-mpm=prefork \> --enable-so \> --enable-rewrite \> --enable-ssl[root@adman httpd-2.2.16]# make #编译[root@adman httpd-2.2.16]# make install #安装[root@adman httpd-2.2.16]# cd /usr/local/apache2[root@adman apache2]# vim conf/httpd.conf52 # LoadModule foo_module modules/mod_foo.so53 LoadModule jk_module modules/mod_jk.so #添加jk模块,模块是编译jk1.2.30得到106 DocumentRoot "/usr/local/webapps" #修改文档主目录133 <Directory "/usr/local /webapps"> #修改文档主目录146 Options Indexes FollowSymLinks158 Order allow,deny159 Allow from all160161 </Directory>416 Include conf/mod_jk.conf #添加jk配置文件,在末尾直接添加如果apache日志出现: session cache no configuration 警告信息请添加下面两行。
可以解决。
417 SSLSessionCache "shmcb:/usr/local/apache2/logs/ssl_scache(512000)"418 SSLSessionCacheTimeout 300[root@adman apache2]# service httpd start #测试是否可以正常启动,看日志是否有报错[root@adman apache2]# netstat -naptl|grep 80 #查看80端口是否启动3、安装jk模块[root@adman apache2]# cd /usr/local/src/ #进入下载目录[root@adman src]# tar zxvf tomcat-connectors-1.2.30-src.tar.gz #解压缩[root@adman src]# cd tomcat-connectors-1.2.30-src #进入目录[root@adman tomcat-connectors-1.2.30-src]# cd native/ #进入native,必须的[root@adman native]# pwd #查看绝对路径/usr/local/src/tomcat-connectors-1.2.30-src/native[root@adman native]# ./configure --with-apxs=/usr/local/apache2/bin/apxs #指定apxs路径[root@adman native]# make #编译,但是不需要安装,我们需要的只是mod_jk.so模块而已,这一步已经生成了。
但是我不知道它生成的位置,使用find查找[root@adman native]# find /usr/local/src/tomcat-connectors-1.2.30-src -name mod_jk.so #找so/usr/local/src/tomcat-connectors-1.2.30-src/native/apache-2.0/.libs/mod_jk.so/usr/local/src/tomcat-connectors-1.2.30-src/native/apache-2.0/mod_jk.so[root@adman native]#cp-ar apache-2.0/mod_jk.so/usr/local/apache2/modules/#找到mod_jk后拷贝到apache目录中的module下。
到httpd.conf添加一行加载模块,这个上面已经做了LoadModule jk_module modules/mod_jk.so四、安装tomcat[root@adman native]# cd /usr/local/src/[root@adman src]# tar zxvf apache-tomcat-7.0.2.tar.gz[root@adman src]# cp -ar apache-tomcat-7.0.2 /usr/local/apache-tomcat-7.0.2-lb1[root@adman src]# cp -ar apache-tomcat-7.0.2 /usr/local /apache-tomcat-7.0.2-lb2[root@adman src]# cp -ar apache-tomcat-7.0.2 /usr/local /apache-tomcat-7.0.2-lb3[root@adman src]# cp -ar apache-tomcat-7.0.2 /usr/local /apache-tomcat-7.0.2-lb4[root@adman src]# vim /usr/local/adsit/apache-tomcat-7.0.2-lb1/conf/server.xml修改第一处:修改关闭tomcat端口,第一个默认为8005,第二个修改为8006,第三个修改为8007,第四个修改为8008修改第二处:修改tomcat提供服务端口,默认为8080。
第一个修改为8081,第二个修改8082,第三个修改8083,第四个修改8084修改第三处:此处的端口是workers.properties文件中的port,作用是apache连接tomcat的连接端口。
第一个修改过为8010,第二个修改8020,第三个修改8030,第四个修改8040修改第四处:修改tomcat网站文件存放主目录的路径修改第五处:在</Host>前面添加两行context代码,这段代码的意思是说在"/usr/local/webapps"目录下有目录,是两个工程。
/代表访问admin目录,访问方式:http://ip /site代表访问test目录,访问方式:http://ip/test[root@adman src]# cat /usr/local/adsit/tomcat-start7.sh #测试4个tomcat启动是否正常source /etc/profile#/usr/local/apache2/bin/apachectl start/usr/local/adsit/apache-tomcat-7.0.2-lb1/bin/startup.sh/usr/local/adsit/apache-tomcat-7.0.2-lb2/bin/startup.sh/usr/local/adsit/apache-tomcat-7.0.2-lb3/bin/startup.sh/usr/local/adsit/apache-tomcat-7.0.2-lb4/bin/startup.shsleep 20s/usr/local/apache2/bin/apachectl start[root@adman src]# netstat -naptl |more #查看是否有8081、8082、8083、8084tcp 0 0 :::8081 :::* LISTEN 4410/javatcp 0 0 :::8082 :::* LISTEN 4427/javatcp 0 0 :::8083 :::* LISTEN 4437/javatcp 0 0 :::8084 :::* LISTEN 4461/java5、利用mod_jk关联apache和tomcat到http.conf中添加,我们上面已经添加,就是使用Include参数指定mod_jk路径[root@adman src]# vim /usr/local/apache2/conf/mod_jk.conf #新建并配置这个文件JkWorkersFile conf/workers.properties #JkLogFile logs/mod_jk.log #记录日志JkLogLevel error #日志级别JkShmFile logs/mod_jk.shm #内存共享文件JkMount /*.* balancer #加载根目录所有的文件,balancer可以随便取名JkMount /adman/*.* balancer 只是需要worker.list=balancer一致即可JkMount /digieq/*.* balancer你可以从/usr/local/src/tomcat-connectors-1.2.30-src/conf/workers.properties中拷贝到apache的conf中,自己也可以新建。