|
mod_jk+tomcat+tomcat集群+session共享
一、安装JDK
1.1、修改安装文件权限
chmod +x /var/1/jdk-6u25-linux-x64-rpm.bin
1.2、对安装文件解包并安装
./jdk-6u25-ea-bin-b03-linux-i586-27_feb_2011-rpm.bin
1.3、修改JDK文件夹目录名
ln –s /usr/java/jdk1.6.0_25 /usr/java/jdk
1.4增加环境变量
vi /etc/profile(最后加入)
export JAVA_HOME=/usr/java/jdk
export PATH=$PATH:$JAVA_HOME/bin:$PATH:$JAVA_HOME/jre/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_BASE=/usr/local/tomcat
1.5刷新profile
source /etc/profile
二、安全访问权限设置
2.1修改系统访问权限
(如果IPTABLES关闭了就不需要此部了
关闭方法:chkconfig --level 2345 iptables off )
2.2修改IPtables 让其它机器可访问tomcat测试网站
/sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
/sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8009 -j ACCEPT
/sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8005 -j ACCEPT
/sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 4001 -j ACCEPT(集群需要)
/sbin/iptables save
三、安装TOMCAT
3.1、解开解压包
tar -zxvf /var/1/apache-tomcat-6.0.28.tar.gz
3.2、复制文件夹到指定目录
mv /var/1/apache-tomcat-6.0.28 /usr/local/tomcat
3.3、对所有执行程序增加权限
chmod 744 /usr/local/tomcat/bin/*.sh
3.4、启动TOMCAT
/usr/local/tomcat/bin/startup.sh
3.5、查看服务是否启动
netstat -tnl 查询是否有8080端口启动
3.6、打开测试
http://服务器IP:8080
------------------------------------------------------------------------
设置APACHE和TOMCAT开机自动启动功能
APACHE开机自动启动
chkconfig --level 345 httpd on
chkconfig --list | grep httpd
四、配置tomcat自动运行
4.1、移动安装文件位置
mv /var/1/jsvc.tar.gz /usr/local/tomcat/bin
4.2、解压 jsvc.tar.gz
tar -zxvf jsvc.tar.gz
4.3、安装前编译
yum –y install autoconf (安装前检查一下是否安装)
cd jsvc-src 进入解压后的jsvc-src文件夹
chmod 755 /usr/local/tomcat/bin/jsvc-src/support/*.sh
/usr/local/tomcat/bin/jsvc-src/support/buildconf.sh 执行support下的buildconf.sh
chmod 755 /usr/local/tomcat/bin/jsvc-src/configure
4.4、安装
cd /usr/locol/tomcat/bin/jsvc-src/
#./configure --with-java=/usr/java/jdk (改成你的JDK的位置 )
#make
4.5、增加tomcat脚本执行用户
useradd tomcat 添加用户
设置用户tomcat对tomcat根目录的权限
chown -R tomcat:tomcat /usr/local/tomcat/
4.6、移动文件tomcat5.sh到/etc/init.d/里面并改名为tomcat
cp /usr/local/tomcat/bin/jsvc-src/native/Tomcat5.sh /etc/init.d/tomcat
4.7、给脚本文件赋于执行权
chmod 755 /etc/init.d/tomcat 赋予脚本755的权限
4.8、编译可执行脚本的参数
vi /etc/init.d/tomcat
vi Tomcat
替换如下为如下内容
#!/bin/bash
#chkconfig:2345 10 90
#description: Starts and Stops the Tomcat daemon.
. /etc/init.d/functions
JAVA_HOME=/usr/java/jdk
CATALINA_HOME=/usr/local/tomcat
DAEMON_HOME=/usr/local/tomcat
TOMCAT_USER=tomcat
# for multi instances adapt those lines.
TMP_DIR=/var/tmp
PID_FILE=/var/run/jsvc.pid
CATALINA_BASE=/usr/local/tomcat
CATALINA_OPTS="-Xms1024m -Xmx2048m -Xmn256m -Djava.awt.headless=true -Dsolr.solr.home=/usr/local/tomcat/solr"(加载solr位置)
CLASSPATH=\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar
case "$1" in
start)
#
# Start Tomcat
#
$DAEMON_HOME/bin/jsvc-src/jsvc \
-user $TOMCAT_USER \
-home $JAVA_HOME \
-Dcatalina.home=$CATALINA_HOME \
-Dcatalina.base=$CATALINA_BASE \
-Djava.io.tmpdir=$TMP_DIR \
-wait 10 \
-pidfile $PID_FILE \
-outfile $CATALINA_HOME/logs/catalina.out \
-errfile '&1' \
$CATALINA_OPTS \
-cp $CLASSPATH \
org.apache.catalina.startup.Bootstrap
#
# To get a verbose JVM
#-verbose \
# To get a debug of jsvc.
#-debug \
exit $?
;;
stop)
#
# Stop Tomcat
#
$DAEMON_HOME/bin/jsvc/jsvc \
-stop \
-pidfile $PID_FILE \
org.apache.catalina.startup.Bootstrap
exit $?
;;
restart)
#
# Stop Tomcat
#
$DAEMON_HOME/bin/jsvc/jsvc -stop -pidfile $PID_FILE org.apache.catalina.startup.Bootstrap
sleep 1
$DAEMON_HOME/bin/jsvc/jsvc \
-user $TOMCAT_USER \
-home $JAVA_HOME \
-Dcatalina.home=$CATALINA_HOME \
-Dcatalina.base=$CATALINA_BASE \
-Djava.io.tmpdir=$TMP_DIR \
-wait 10 \
-pidfile $PID_FILE \
-outfile $CATALINA_HOME/logs/catalina.out \
-errfile '&1' \
$CATALINA_OPTS \
-cp $CLASSPATH \
org.apache.catalina.startup.Bootstrap
#
# To get a verbose JVM
#-verbose \
# To get a debug of jsvc.
#-debug \
exit $?
;;
*)
echo "Usage tomcat.sh start/stop/restart"
exit 1;;
esac
4.9、允许程序自动启动
运行命令
chkconfig --level 345 tomcat on
chkconfig --list | grep tomcat
五、APACHE和TOMCAT融合
5.1、解压链接器
tar zxvf /var/123/tomcat-connectors-1.2.32-src.tar
5.2、安装
cd /var/123/tomcat-connectors-1.2.32-src/native
./configure --with-apxs=/usr/sbin/apxs --with-java-home=/usr/java/jdk
make
make install
(检查mod_jk.so 文件是否已经安装进如果没有手动执行下面的命令)
cp /var/123/tomcat-connectors-1.2.32-src/native/apache-2.0/mod_jk.so /usr/local/apache/modules/
5.3、修改apache 配置文件
vi /etc/httpd/conf/httpd.conf
在DirectoryIndex中添加 index.jsp login.jsp
DirectoryIndex index.html index.jsp login.jsp
在最后增加
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from all
ServerLimit 20000
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 1000
MaxRequestsPerChild 0
Include /usr/local/apache/conf/mod_jk.conf
删除 #ServerName 前面的 #
显示为:ServerName外网地址或域名:80
将Listen 80 修改为 Listen 127.0.0.1:80
修改 AddDefaultCharset UTF-8 为
显示为 AddDefaultCharset GB2312(根据需要调整)
5.4、新增配置文件
增加耦合配置文件
vi /usr/local/apache/conf/mod_jk.conf
LoadModule jk_module modules/mod_jk.so
JKWorkersFile /usr/local/apache/conf/workers.properties
#JkMountFile /usr/local/apache/conf/uriworkermap.properties
JKShmFile /usr/local/apache/logs/mod_jk.shm
JKLogFile /usr/local/apache/logs/mod_jk.log
JKLogLevel warn
###### Set the jk log level [debug/error/info]
JKLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JKOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
#JkMount /servlet/* tomcat
JkMount /* tomcat
#JKMount /*.jsp tomcat
#JkMount /*.do tomcat
#JkMount /*.action tomcat
AddType application/x-jsp .jsp
AddType application/x-js .js
AddType application/x-css .css
addtype application/x-httpd-php .php
addtype application/x-httpd-php-source .phps
增加tomcat控制文件
vi /etc/httpd/conf/workers.properties
#workrers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/java/jdk
worker.list=tomcat
worker.tomcat.type=lb
worker.tomcat.error_escalation_time=0
worker.tomcat.max_reply_timeouts=10
ps=/
#===============s1===============
worker.s1.type=ajp13
worker.s1.host=192.168.122.2
worker.s1.port=8009
worker.s1.lbfactor=1
#worker.s1.activation=A
#worker.s1.socket_connect_timeout=500
#worker.s1.socket_keepalive=true
#worker.s1.ping_mode=A
#==============s2=================
worker.s2.type=ajp13
worker.s2.host=192.168.122.3
worker.s2.port=8009
worker.s2.lbfactor=1
#worker.s2.activation=A
#worker.s1.socket_connect_timeout=500
#worker.s1.socket_keepalive=true
#worker.s1.ping_mode=A
worker.retries=3
worker.tomcat.balanced_workers=s1,s2
worker.tomcat.sticky_session=1
worker.status.type=status
#worker.tomcat.lbfactor=50
#worker.tomcat.cachesize=10
#worker.worker1.cache_timeout=600
#worker.worker1.socket_keepalive=1
#worker.worker1.socket_timeout=300
增加uriworkermap.properties 文件(不使用TOMCAT管理的文件也可不增加但是必须注释掉mod_jk.conf)
vi /etc/httpd/conf/uriworkermap.properties
/*=tomcat
/jkstatus=status
!/*.gif=tomcat
!/*.jpg=tomcat
!/*.png=tomcat
!/*.css=tomcat
!/*.js=tomcat
!/*.htm=tomcat
!/*.html=tomcat
5.5、修改TOMCAT服务器文件
vi /usr/local/tomcat/conf/server.xml
在中增加(在主目录可直接访问JSP项目当然如果主目录中没有可以不加)
注释:path:是说明虚拟目录的名字,如果你要只输入ip 就显示主页,则该键值留为空;
docBase:虚拟目录的路径,如果为空的话指的是可以直接访问根目录
修改
为
修改
为
修改
为
(第一台为s1 第二台为s2)
增加集群配置
新建日志目录及修改权限
mkdir /tmp/war-temp
mkdir /tmp/war-deploy
mkdir /tmp/war-listen
chown –R tomcat:tomcat /tmp/war-temp
chown –R tomcat:tomcat /tmp/ war-deploy
chown –R tomcat:tomcat /tmp/ war-deploy
重启 APACHE和TOMCAT
service httpd restart
service tomcat restart
--------------------------------------------------------------------------------
访问http://服务器IP地址
5.6、设置session复制选项
在项目中找到WEB-INF下的web.xml,如下
TomcatDemo
注意:在你的应用的web.xml加入 即可
如果所有项目都需要session复制修改/usr/local/tomcat/conf/context.xml
在中增加 distributable="true"变为
6、第二台服务器
6.1、增加第二个TOMCAT的环境变量(第二台机器在同一台机器上如果不是可按第5章安装)
vi /etc/profile
在最后增加
CATALINA_1_BASE=/usr/local/tomcat1
CATALINA_1_HOME=/usr/local/tomcat1
TOMCAT_1_HOME=/usr/local/tomcat1
export CATALINA_1_BASE CATALINA_1_HOME TOMCAT_1_HOME
6.2、修改TOMCAT中server.xml
vi /usr/local/tomcat/conf/server.xml
设置集群管理JvmRoute
在中增加
集群设置同上
6.3、复制一份TOMCAT
/usr/local/tomcat/bin/shutdown.sh 关闭服务
cp -rp /usr/local/tomcat /usr/local/tomcat1
6.4、修改TOMCAT1中server.xml
vi /usr/local/tomcat1/conf/server.xml
修改管理端口
#原为8005
#原为9080
#原为9009
修改集群设置
#修改监控端口
6.5、修改TOMCAT1的catalina.sh
vi /usr/local/tomcat1/bin/catalina.sh
将所有的CATALINA_BASE修改为$CATALINA_1_BASE
将所有的CATALINA_HOME修改为$CATALINA_1_HOME
6.6TOMCAT1开机自动启动功能
6.6.1、安装
cd /usr/locol/tomcat1/bin/jsvc-src/
#./configure --with-java=/usr/java/jdk (改成你的JDK的位置 )
#make
6.6.2、增加tomcat脚本执行用户
设置用户tomcat对tomcat根目录的权限
chown -R tomcat /usr/local/tomcat1/
6.6.3、移动文件tomcat5.sh到/etc/init.d/里面并改名为tomcat
cp /usr/local/tomcat1/bin/jsvc-src/native/Tomcat5.sh /etc/init.d/tomcat1
6.6.4、给脚本文件赋于执行权
chmod 755 /etc/init.d/tomcat1 赋予脚本755的权限
6.6.5、编译可执行脚本的参数
vi /etc/init.d/tomcat1
将文件中所有 CATALINA_HOME 更改为 CATALINA_1_HOME
将文件中所有DAEMON_HOME 更改为 DAEMON_1_HOME
检查文件路径参数
JAVA_HOME=/usr/java/jdk (注意)
CATALINA_1_HOME=/usr/local/tomcat1(注意)
DAEMON_1_HOME=/usr/local/tomcat1(注意)
TOMCAT_USER=tomcat(注意)
默认情况下使用那个用户启动TOMCAT程序
# for multi instances adapt those lines.
TMP_DIR=/var/tmp
PID_FILE=/var/run/jsvc.pid
CATALINA_1_BASE=/usr/local/tomcat1 (注意)
stop)
#
# Stop Tomcat1
#
$DAEMON_1_HOME/bin/jsvc-src/jsvc \ (注意)
-stop \
-pidfile $PID_FILE \
org.apache.catalina.startup.Bootstrap
exit $?
;;
*)
echo "Usage tomcat1.sh start/stop"
exit 1;;
esac
允许程序自动启动
修改脚本最上面的参数
#!/bin/bash
# chkconfig: 2346 11 91 #(修改)
# description: Starts and Stops the Tomcat daemon.
运行命令
chkconfig –level 345 tomcat1 on
重启系统
reboot
——————————————————————————————————————————————
最后打开网页测试
备注:ps –ef
ps aux | grep tomcat
lsof
|
|
|
|
|
|
|