把IIS中的两个站点通过JK转发到两个tomcat实例

单实例的好办,先在注册表里定义好jk的相关设置,在站点下加载ISAPI筛选器,并新建一个叫jakarta的虚拟目录指向isapi_redirect.dll文件所在的目录 在worker.properties里定义tomcat实例的AJP端口等信息,类似下面这样

worker.list=ajp13w,ajp13,jkstatus
workers.java_home=D:\dev\jdk1.5.0_07
ps=\

worker.ajp13w.type=ajp13
worker.ajp13w.host=192.168.0.112
worker.ajp13w.port=8009
worker.ajp13w.lbfactor=1
worker.jkstatus.type=status

在uriworkermap.properties文件里定义转发规则,类似下面的

/*=ajp13w
/jkstatus=jkstatus

单实例的就这样配置就可以了,但是如果有两个站点对应两个tomcat实例应该怎么搞呢,在linux下可以在虚拟主机里用JkMountFile定义这个虚拟主机使用哪个uriworkermap.properties文件,windows注册表里只有一个worker_mount_file参数用来定义uriworkermap.properties文件路径 在这里卡了很久,后来发现可以这样做,首先在worker.properties里定义两个实例的信息,这个好办

worker.list=ajp13w,ajp14w,ajp13,jkstatus
workers.java_home=D:\dev\jdk1.5.0_07
ps=\

worker.ajp13w.type=ajp13
worker.ajp13w.host=192.168.0.1
worker.ajp13w.port=8009
worker.ajp13w.lbfactor=1
worker.jkstatus.type=status

worker.ajp14w.type=ajp13
worker.ajp14w.host=192.168.0.1
worker.ajp14w.port=8010
worker.ajp14w.lbfactor=1
worker.jkstatus.type=status

uriworkermap.properties文件是关键,可以这样写

/www.a.com/*=ajp13w
/www.b.com/*=ajp14w
/jkstatus=jkstatus

嗯,在前面把域名加上就行了,这个困扰了很久的问题就这么愉快地解决了  

使用非root用户运行tomcat

这里有三个办法

1.使用tomcat自带的工具jsvc,在在tomcat的bin目录下有一个jsvc.tar.gz的文件,进入tomcat的bin目录下

将其解压,得到jsvc-src文件夹,进入jsvc-src。在终端运行:

./configure –with-java=/usr/lib/j2sdk1.6-sun(改成你的JDK的位置)
make
得到jsvc-src/jsvc文件。将jsvc-src/native/tomcat6.sh脚本文件拷贝到/etc/init.d下/etc/init.d/tomcat6.sh还需要修改,使其看起来像:
JAVA_HOME=/usr/lib/j2sdk1.6-sun
CATALINA_HOME=/usr/share/tomcat6
DAEMON_HOME=/usr/share/tomcat6
TOMCAT_USER=tomcat6 #这里改为一个普通身份的用户名
TMP_DIR=/var/tmp
CATALINA_OPTS=
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 \
……

2.使用su命令
tomcat的启动脚本中,tomcat的启动命令那行改为su -c /home/tomcat/bin/startup.sh tomcat,tomcat即为启动tomcat的用户

#adduser tomcat&& passwd tomcat&& chown tomcat.tomcat /usr/local/tomcat -R

&&su – tomcat -c “/usr/loca/tomcat/bin/startup.sh”

3.使用sudo命令

tomcat的启动脚本中,tomcat的启动命令那行改为sudo -u tomcat /home/tomcat/bin/startup.sh,tomcat即为启动tomcat的用户,使用sudo时要注意,sudo默认是需要tty的,通过修改/etc/sudoers文件,将 Defaults requiretty 注释掉即可,否则系统启动时是不会自动运行的。

在Linux下安装tomcat6

操作系统:Redhat EL5

1  在/usr/local/下解压缩apache-tomcat-6.0.14.tar.gz
   tar -zxvf apache-tomcat-6.0.14.tar.gz

2  解压得到apache-tomcat-6.0.14文件夹,建个快捷方式
   ln -s apache-tomcat-6.0.14 tomcat

3  启动/usr/local/tomcat/bin下的catalina.sh
   ./catalina.sh start

4  访问测试,http://192.168.0.137:8080,如果出现apache tomcat的画面就安装成功了

5  环境变量的设置:
   vi /etc/profile可以设置所有用户的环境变量
   在/root/下 ls -a 可以看到.bash_profile文件,在这里可以修改root的环境变量,优先级高于/etc/profile
   设置好环境变量之后,vi /usr/local/tomcat/bin/catalina.sh
   加入:JAVA_HOME=/usr/local/jdk

6  把tomcat做成服务
   在/etc/init.d/下,ln -s /usr/local/tomcat/bin/catalina.sh /etc/init.d/tomcat

7  配置
   把做好的war包放到tomcat目录下的webapps里面,tomcat会自动解压并部署该文件
   访问测试,在浏览器输入http://192.168.0.137:8080/djweb/faces,djweb为模块名

8  设置tomcat自启动
   chkconfig –add tomcat
   chkconfig –level 3 tomcat on 在启动级别3随系统启动
   chkconfig –list 查看

注意:如果出现“tomcat服务不支持chkconfig”的错误提示,需要在catalina.sh的前两行注释里加入
# chkconfig: 2345 10 90
# description: Starts and Stops the Tomcat daemon.
chkconfig这行表示缺省启动的运行级别以及启动和停止的优先级,如该服务缺省不再任何运行级启动,则以 – 代替运行级别。
在tomcat中表示脚本在运行级2、3、4、5启动,启动优先权为10,停止优先权为90。