Pages

Friday, 30 March 2012

把tomcat跟apache相整合

apache整合tomcat也是就是其中之一。   选用的原因:
Apache优势有:
--功能强大:apache为模块化的设计,通过扩展模块可以扩展很多功能。
--配置简单:apache的配置文件也比较简单易懂   --性能稳定:apache在搞负载请求下性能表现依旧不俗。
但是apache的缺点:
--只能支持静态页面,对jsp,php等不支持
但是作为市场份额超过半数的选择,选择apache并不奇怪。
Tomcat的优势:
--作为apache软件基金会和sun支持的项目,有着最纯真的sun更新代码的体现,           serlet和jsp的容器,对于动态页面支持非常好
--跨平台性非常好,只要有JDK的支持就可以运行
Tomcat缺点:
--支持静态页面效率不如apache
--可配置型,稳定性都不如apache
综上将apache和tomcat整合起来应该是优势互补。况且本身apache和tomato还都是apache软件基金会的子项目呢,
整合原理:apache本身和tomcat都是开源的,可单独作为web服务器的软件,所以整合他们需要另外一些东西进行二者之间通信,相对于apache来说等同扩展功能,所以开源爱好者开发出了可利用的模块,这里主要介绍的有4个模块。
--mod_jk2.so:早期的连接器,在动静态页面过滤上使用正则表达式,配置较灵活,但是现在已经没有开发人员的支持了,版本就此停止了。
--mod_jk.so:上面的取代版本,支持apache 1.x和2.x版本,大多都是用这个模块
--http-proxy:apache2.2版本出现后出现,可以实现双向代理,功能强大,只要打开tomcat的http功能,然后用apache的proxy代理功能将动态请求交给tomcat处理,静态自己处理即可
--proxy-ajp:专门针对tomcat整合开发,ajp协议专门代理对tomcat请求,执行效率最高。   环境:RHEL 5.4
Httpd-2.2.17.tar.gz
Apache-tomcat-5.5.33.tar.gz
tomcat-connectors-1.2.31-src.tar.gz
JDK-6u25-dlj-linux-i586.bin   1/首先上传相应的软件包到服务器上
2/下面就是安装相应的辅助软件包,包括gcc编译器,libtool
3/下面就进行apache的安装,安装过程就不截图了,这里把步骤送上
[root@mail ~]#tar -zxvf  httpd-2.2.17.tar.gz
[root@mail ~]#cd httpd-2.2.17
[root@mail ~]#./configure --prefix=/usr/local/apache \
--enable-modules=most \
--enable-mods-shared=all \
--enable-so
[root@mail ~]#make ;make install
这里有加载模块的选项解释下,prefix是安装路径,--enable-modules=most是动态加载大多数模块静态编译到apache的二 进制文件中,--enable-mods-shard=all表示动态加载所有模块,这两个选项是可选的,但是最后一个—enable-so是必须要有 的,是一个加载模块的开关。这里感谢南非蚂蚁的文档的帮助。。。谢谢
4/安装完成之后当然是安装tomcat,我们修改下目录名称,不影响的
[root@mail ~]#cd /usr/local
[root@mail local]# tar -zxvf apache-tomcat-5.5.33.tar.gz
[root@mail local]#mv apache-tomcat-5.5.33  tomcat5.5.33
这里因为tomcat默认解压缩的时候已经是二进制可执行文件了,就不用编译安装了,直接拷贝到我们的目录下就可以了
5/因为tomcat基于Java的环境,所以需要安装jdk,并修改环境变量
[root@mail ~]#cd  /usr/local
[root@mail local]#chmod u+x jdk-6u15-linux-i586.bin
[root@mail local]#./jdk-6u15-linux-i586.bin
安装过程根据提示操作即可完成。安装完成会生成一个jdk1.6.0_25目录
下面需要修改环境变量来满足tomcat的运行环境,在文件最后添加,因为jdk安装在/usr/local下,所以才会配置如此,如果位置不同只需修改JAVA_HOME路径即可
#Vim /etc/profile
export JAVA_HOME="/usr/local/jdk1.6.0_25"
export PATH="$PATH :$JAVA_HOME/bin:$JAVA_HOME/jre/bin:"
export CLASSPATH="$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib"
如果正确完成之后是可以用java –version来查看版本的
6/因为要让apache和tomcat进行通信,所以当然要安装一个连接器,或者叫插件,
[root@mail ~]# cd /usr/local/
[root@mail local]#tar xzvf jakarta-tomcat-connectors-1.2.31-src.tar.gz
[root@mail local]# cd jakarta-tomcat-connectors-1.2.31-src/native
[root@mail native]# ./buildconf.sh
[root@mail native]# --with-apxs=/usr/local/apache2/bin/apxs  \
--with-java-home=/usr/local/jdk1.6.0_25   7、到此安装的步骤已经全部结束,下面就开始进行相应的整合操作!
Tomcat是一个服务于web server等执行servlet/jsp的tomcat实例,所以需要在apache的配置文件下添加相关的配置文件来让apache和tomcat来进行通讯,在这里需要添加2个文件,一个是mod_jk.conf和workers.properties,
#cd /usr/local/apache2/conf
#vim mod_jk.conf   ###### 指出mod_jk模块工作所需要的工作文件workers.properties的位置
JkWorkersFile /usr/local/apache2/conf/workers.properties
###### Where to put jk logs
JkLogFile /usr/local/apache2/logs/mod_jk.log
###### Set the jk log level [debug/error/info]
JkLogLevel info
###### Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
###### JkOptions indicate to send SSL KEY SIZE,
JkOptions  +ForwardKeySize +ForwardURICompat -ForwardDirectories
###### JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
###### 将所有servlet 和jsp请求通过ajp13的协议送给Tomcat,让Tomcat来处理
JkMount /servlet/*  worker1
JkMount /*.jsp worker1
JkMount /*.do worker1
这里说明一下,比较重要的就是最后两行了,因为这里是告诉apache如何判断用户的请求哪些该法往tomcat,这里我只写了讲servlet和 jsp页面的请求发往tomcat,其余的就是apache自身来处理,这里有一个匹配原则,apache优先匹配静态资源,一旦静态匹配不成功,再来检 查这里的文件,满足就转发给tomcat
8、然后添加,指定和tomcat通信的apache进程实例的一些模式,包括协议,端口啊等
Vim workers.properties
####### Defining a worker named worker1 and of type ajp13
worker.list=worker1
####### Set properties for worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300
9、最后配置apache服务器配置文件,让apache加载mod_jk.so模块和读取mod_jk.conf文件
#vim httpd.conf   LoadModule jk_module modules/mod_jk.so
Include /usr/local/apache2/conf/mod_jk.conf
这里还可以修改下服务器名称,这里方便我就改成自身的IP,监听端口等
还要增加主页对JSP页面的支持
到此apache全部配置就基本结束了,下面我们来配置tomcat整合要做哪些设置
10、tomcat整合必须修改主配置文件添加一部分内容即可
#vim  /usr/local/tomcat/conf/server.xml
在<Host></Host>之间添加<Context path=""  docBase="/usr/local/apache/htdocs/"
debug="0" reloadable="true"  crossContext="true"/>
这里我用红色的颜色标记了网页的存放路径一定要和apache里指向同一个地方
到此tomcat其实也就设置完成了,但是这里给个小提示。Tomcat默认也可以单独作为web服务器的,所以他也有自己监听的端口,默认是8080,配置文件里说明了   <Connector port="8009"
enableLookups="false"
redirectPort="8443"
protocol="AJP/1.3“    />
11、最后重启apache和tomcat即可完成
Apache的启动:
#/usr/local/apache/bin/apachectl   start
Tomcat的启动:
#/usr/local/tomcat/bin/startup.sh    start
这里能看到8080端口是因为我没有将tomcat的默认端口关闭。这样恰好可以看到tomcat是启动了的,而且ajp13也是监听在,这样整合就成功了,下面我们来进行检测
12检测
--首先我们看下默认纯apache是否支持jsp页面
这里我用默认的jsp一个简单的页面,结果apache返回给我源代码,说明apache不支持jsp页面   看到是支持的,但是有人会怀疑这是不是tomcat解析出来的,并不是整合的效果,那好,这里告诉各位额,我们都知道apache有自己独有的报错页 面,也就是你访问错误的网页时候apache返回的页面是可以判断这就是apache在处理相关的信息,同样的tomcat也有独有的报错页面,下面这就 是访问不到默认tomcat的页面返回信息,这样才知道是哪个响应了我们的请求,到此,我们的整合实验算是基本完成了.
from http://www.huomo.cn/sysapp/article-1bb00.html
-------------------------------------------------------------------
 用apache代理实现整合多个tomcat

要求:
  运行多个tomcat,通过apache侦听的端口进行区分。
  对于每个tomcat,配置各自需要服务的虚拟主机
  使用Apache的Proxy进行代理转发,转到对应的tomcat上面,重点在端口不同
  取消jk连接,减少复杂度。虽然损失了一些Apache对静态文本的性能,但整体看还是值得的
  结果:
  tomcat的 server.xml里面配置了各自的虚拟主机,比如 www.aaa.com 和 oa.aaa.com。第一个是主域名,第二个是二级域名。tomcat端口为8080。第二个tomcat配置了一个 sales.aaa.com 用来支持销售,端口为8081。详细的配置文件请参考tomcat的虚拟主机配置,这里就不写了。
  测试各个虚拟主机的运行是否正常,使用 http:// oa.aaa.com:8080/ 这样的方式进行测试。
apache的 httpd.conf配置
打开代理所需要的.so支持模块,在httpd.conf里面,取消下面四行的注释:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
制作各自的虚拟主机
NameVirtualHost *:80 
<VirtualHost *:80>
ServerName www.aaa.com
ProxyPass /
http://www.aaa.com:8080/
ProxyPassReverse / http://www.aaa.com:8080/
</VirtualHost>
<VirtualHost *:80>
ServerName oa.aaa.com
ProxyPass /
http://oa.aaa.com:8080/
ProxyPassReverse / http://oa.aaa.com:8080/
</VirtualHost>
<VirtualHost *:80>
ServerName sales.aaa.com
ProxyPass /
http://sales.aaa.com:8081/
ProxyPassReverse / http://sales.aaa.com:8081/
</VirtualHost>
若需要内部端口整合
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
现在我们编辑第一个tomcat配置文件,端口为默认的8080
<Engine name="Catalina" defaultHost=www.aaa.com>
<Host name=www.aaa.com appBase=="/www/aaa.com/htdocs" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false
"

<
Host name=www.cba.com appBase=="/www/cba.com/htdocs" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" />

源码编译安装proxy-ajp模式的
# tar xvjf httpd-2.2.0.tar.bz2
# cd httpd-2.2.0

安装apr
# cd srclib/apr
# ./configure --prefix=/server/soft/apr
# make
# make install

安装apr-util
# cd ../apr-util/
# ./configure --prefix=/server/soft/apr-util \
    --with-apr=/server/soft/apr
# make
# make install
# cd ../../

安装apache
# ./configure --prefix=/server/soft/apache \
    --enable-so \
    --enable-rewrite=share \
    --enable-proxy=share \
    --enable-proxy-ajp=share \
    --enable-dav=share \
    --with-apr=/server/soft/apr \
    --with-apr-util=/server/soft/apr-util/
# make
# make install


</Engine>
注意:网站文件请分别放在/www/*/htdocs/ROOT目录
 Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"   />
</Engine>
编辑第二个tomcat配置文件,端口修改为8081
<Engine name="Catalina" defaultHost=localhost>
<
注意:网站文件放在tomcat安装文件目录的默认ROOT目录
localhost这里可以不用修改,因为只有一个网站,我们就可以不用域名代替
附出错分析:
如果编译安装没有编辑代理模块的解决办法
方法如下:
编译的时候要打开WITH_PROXY_MODULES选项,但我又不想重新安装apache,所以使用以下步骤达到此目的。
1、重新编译带有proxy模块的apache,但不安装。
进入源代码目录
#cd /usr/loacl/src/httpd2.2.9
#make WITH_PROXY_MODULES=yes
2. 分别编译代理模块
    cd modules/proxy
   /usr/local/apache/bin/apxs -c -i -a  mod_proxy.so proxy_util.c
   /usr/local/apache/bin/apxs -c -i -a  mod_proxy_ajp.so mod_proxy_ajp.c
   /usr/local/apache/bin/apxs -c -i -a  mod_proxy_connect.so mod_proxy_connect.c
   /usr/local/apache/bin/apxs -c -i -a  mod_proxy_http.so mod_proxy_http.c
   /usr/local/apache/bin/apxs -c -i -a  mod_proxy_ftp.so mod_proxy_ftp.c
这样就编译进了apache配置文件
编译过程中或者会出错,因为权限原因,需要给755权限
chmod 755 /usr/local/apache/modules/*.so
查看httpd.conf文件显示已经添加了代理模块
以下是httpd.conf的部分显示
# Example:
# LoadModule foo_module modules/mod_foo.so
LoadModule php5_module        modules/libphp5.so
LoadModule proxy_module   modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module  modules/mod_proxy_http.so
LoadModule proxy_ftp_module   modules/mod_proxy_ftp.so
#
已经添加进了apache,现在需要重新启动apache,就可以正常配置代理方式了
#配置(prefix是安装路径,enable-mods-shared=all表示编译配置所有so文件)
./configure --prefix=/usr/local/apache --enable-mods-shared=all

 php编译案例:

./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php5 --disable-debug --enable-ftp --enable-inline-optimization --enable-magic-quotes --enable-mbstring --enable-safe-mode --enable-wddx=shared --with-gd --with-gettext --with-regex=system --with-zlib --with-mcrypt --enable-sockets
单独编译apache可以进行这样的操作
[root@localhost apache]#./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared="proxy proxy_http proxy_ftp proxy_connect headers"

编译
[root@localhost apache]# make
检查编译后的是否有编译出so文件
[root@localhost apache]# cd /usr/local/apache/modules
[root@localhost modules]#]# ls
httpd.exp       mod_proxy_ajp.so       mod_proxy_connect.so mod_proxy_http.so
mod_headers.so mod_proxy_balancer.so mod_proxy_ftp.so      mod_proxy.so


如果存在以上文件则说明编译成功
安装
[root@localhost apache]# make install

启动APACHE
[root@localhost apache]# /usr/local/apache/bin/httpd -k start
测试如果输出IT works那么就ok了
附:
tomcat 404页面设置方法在web.xml里面加入
     <error-page>
              <error-code>404</error-code>
              <location>/404.jsp</location>
      </error-page>
添加404.jsp页面文件,重新启动tomcat可生效。
----------------------------------------------------------

linux下apache tomcat mod_jk 负载均衡+集群+session 复制


apache-tomcat-7.0.6.tar.gz
httpd-2.2.17.tar.gz
jdk-6u23-linux-i586.bin
tomcat-connectors-1.2.31-src.tar.gz
1个apache  2个tomcat在一台机器上,修改其中一个tomcat相关端口,对应如下
8080     8980
8005     8905
8009     8909
4000     4001
1.安装httpd
tar zxvf httpd-2.2.17.tar.gz
cd httpd-2.2.17
./configure --prefix=/usr/local/apache2 --enable-so
make && make install
2.安装JDK
chmod +x jdk-6u18-linux-i586.bin
./jdk-6u18-linux-i586.bin
mv jdk1.6.0_18 /usr/local/jdk
rm -rf /usr/bin/java
rm -rf /usr/bin/javac
ln -s /usr/local/jdk/bin/java /usr/bin/java
ln -s /usr/local/jdk/bin/javac /usr/bin/javac
[root@centoslamp src]# java -version
java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode, sharing)
ln -s /usr/local/jdk/jre /usr/local/jre
设置环境变量
vi /etc/profile 添加如下内容
JAVA_HOME=/usr/local/jdk
export JAVA_HOME
JRE_HOME=/usr/local/jre
export JRE_HOME
运行,使环境变量生效
source /etc/profile
3.安装tomcat
tar zxvf apache-tomcat-7.0.6.tar.gz
mv apache-tomcat-7.0.6 /usr/local/tomcat1
tar zxvf apache-tomcat-7.0.6.tar.gz
mv apache-tomcat-7.0.6 /usr/local/tomcat2
4.安装tomcat-connectors
tar zxvf tomcat-connectors-1.2.31-src.tar.gz
cd tomcat-connectors-1.2.31-src/native/
./configure --with-apxs=/usr/local/apache2/bin/apxs --with-java-home=/usr/local/jdk
make && make install
5. 配置httpd.conf 文件
vi /usr/local/apache2/conf/httpd.conf
添加
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>
6.创建并配置workers.properties文件
vi /usr/local/apache2/conf/workers.properties
worker.list=wlb , jkstatus
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
# Define preferred failover node for worker1
#worker.worker1.redirect=worker2
worker.worker2.port=8909
worker.worker2.host=localhost
worker.worker2.type=ajp13
worker.worker2.lbfactor=1
# Disable worker2 for all requests except failover
#worker.worker2.activation=disabled
worker.wlb.type=lb
worker.wlb.balance_workers=worker1,worker2
worker.jkstatus.type=status
以上注释掉的两行如果开启,则worker2成为worker1的备用,在worker1不可用的情况下才会向worker2请求
7.创建并配置uriworkermap.properties
vi /usr/local/apache2/conf/uriworkermap.properties
/admin/*=wlb
/manager/*=wlb
/jsp-examples/*=wlb
/servlets-examples/*=wlb
/examples/*=wlb
/*.jsp=wlb
!/servlets-examples/*.jpeg=wlb
/jkmanager=jkstatus
!/*.gif=wlb
!/*.jpg=wlb
!/*.png=wlb
!/*.css=wlb
!/*.js=wlb
!/*.htm=wlb
!/*.html=wlb
8.编辑server.xml文件
vi /usr/local/tomcat/conf/server.xml
修改相关对应端口,如果在不同的机器上则不需要修改
<Connector port="8080" protocol="HTTP/1.1"
             connectionTimeout="20000"
             redirectPort="8443" />
  <!-- A "Connector" using the shared thread pool-->
  <!--
  <Connector executor="tomcatThreadPool"
             port="8080" protocol="HTTP/1.1"
             connectionTimeout="20000"
             redirectPort="8443" />

<Server port="8005" shutdown="SHUTDOWN">

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
9.复制tomcat下webapps下的文件到/usr/local/apache2/htdocs
cp –R  /usr/local/tomcat1/webapps/* /usr/local/apache2/htdocs
10.启动tomcat 和httpd
/usr/local/tomcat1/bin/startup.sh
/usr/local/tomcat2/bin/startup.sh
/usr/local/apache2/bin/apachectl start
到这里负载均衡完成
配置集群
11.修改tomcat1 下的server.xml
<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker1">
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
                 channelSendOptions="8">
          <Manager className="org.apache.catalina.ha.session.DeltaManager"
                   expireSessionsOnShutdown="false"
                   notifyListenersOnReplication="true"/>
          <Channel className="org.apache.catalina.tribes.group.GroupChannel">
            <Membership className="org.apache.catalina.tribes.membership.McastService"
                        address="228.0.0.4"
                        port="45564"
                        frequency="500"
                        dropTime="3000"/>
            <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
                      address="192.168.15.124"                       port="4000"                       autoBind="100"
                      selectorTimeout="5000"
                      maxThreads="6"/>
            <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
              <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
            </Sender>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
          </Channel>
          <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
                 filter=""/>
          <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
                    tempDir="/tmp/war-temp/"
                    deployDir="/tmp/war-deploy/"
                    watchDir="/tmp/war-listen/"
                    watchEnabled="false"/>
          <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
          <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
        </Cluster>
12.修改tomcat2的server.xml文件
<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker2">
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
                 channelSendOptions="8">
          <Manager className="org.apache.catalina.ha.session.DeltaManager"
                   expireSessionsOnShutdown="false"
                   notifyListenersOnReplication="true"/>
          <Channel className="org.apache.catalina.tribes.group.GroupChannel">
            <Membership className="org.apache.catalina.tribes.membership.McastService"
                        address="228.0.0.4"
                        port="45564"
                        frequency="500"
                        dropTime="3000"/>
            <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
                      address="192.168.15.124"                       port="4001"                       autoBind="100"
                      selectorTimeout="5000"
                      maxThreads="6"/>
            <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
              <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
            </Sender>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
          </Channel>
          <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
                 filter=""/>
          <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
                    tempDir="/tmp/war-temp/"
                    deployDir="/tmp/war-deploy/"
                    watchDir="/tmp/war-listen/"
                    watchEnabled="false"/>
          <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
          <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
        </Cluster>
13.查看
netstat –ant
tcp        0      0 ::ffff:192.168.15.124:4000  :::*                        LISTEN     
tcp        0      0 ::ffff:192.168.15.124:4001  :::*                        LISTEN     
14.修改应用程序的web.xml文件
在</web-app> 之前加上<distributable/> 用于session 复制
vi /usr/local/tomcat2/webapps/examples/WEB-INF/web.xml
vi /usr/local/tomcat2/webapps/examples/WEB-INF/web.xml
vi /usr/local/apache2/htdocs/examples/WEB-INF/web.xml
<distributable/>
</web-app>
15.测试session 复制
打开http://192.168.15.124/examples/servlets/servlet/SessionExample
输入相关内容,然后关闭其中的正在连接的tomcat 连接到第二个tomcat 查看之前提交的内容是否还在
Sessions Example
Session ID: A45E7C637D98B3EBDEF052BEADF8E5F4.worker2 Created: Mon Jan 31 12:07:33 CST 2011
Last Accessed: Mon Jan 31 12:09:26 CST 2011 The following data is in your session:
1 = 1
2 = 2
Sessions Example
Session ID: A45E7C637D98B3EBDEF052BEADF8E5F4.worker1 Created: Mon Jan 31 12:07:33 CST 2011
Last Accessed: Mon Jan 31 12:10:09 CST 2011 The following data is in your session:
1 = 1
2 = 2

相关文档
http://www.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/
/usr/local/src/tomcat-connectors-1.2.31-src/conf/下的
httpd-jk.conf  uriworkermap.properties  workers.properties  workers.properties.minimal



No comments:

Post a Comment