1. 基本信息
tomcat-8.5.38,jdk1.8.0_201,nginx-1.10.2-1.el6.x86_64
2. 需要实现的效果
需要实现的效果
1、使用Nginx实现负载均衡
2、使用多个Tomcat作为应用服务器
3、静态资源从Tomcat中分离
Nginx端口为80,反向代理3个Tomcat(8080、8081、8082)。

3. 在linux安装nginx
- yum install nginx -y
- vim /etc/nginx/conf.d/tomcat.conf
upstream tomcat{
#集群有几台服务器即可配置几台,weight表示权重,权重越大被访问到的几率越大
#这里添加的是上面启动好的两台Nginx服务器
server 172.16.1.9:8080 ;
server 172.16.1.9:8081 ;
server 172.16.1.9:8082 ;
}
#nginx基本配置
server{
listen 80; #端口号
server_name 192.168.179.7; #服务名
location /{
proxy_pass http://tomcat;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
}
}
4. 在linux安装tomcat
- tar xf jdk-8u201-linux-x64.tar.gz
- tar xf apache-tomcat-8.5.38.tar.gz
- cp -a apache-tomcat-8.5.38 /application/tomcat8_1
- cp -a jdk1.8.0_201 /application/jdk
- sed -i.ori ‘$a export JAVA_HOME=/application/jdk\nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH\nexport CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar’ /etc/profile
- source /etc/profile
- echo ‘export TOMCAT_HOME=/application/tomcat8_1’>>/etc/profile
- echo ‘export TOMCAT_HOME=/application/tomcat8_2’>>/etc/profile
- echo ‘export TOMCAT_HOME=/application/tomcat8_3’>>/etc/profile
- source /etc/profile
- chown -R root.root /application/jdk/ /application/tomcat8_1/
- cp -a /application/tomcat8_1 /application/tomcat8_2
- cp -a /application/tomcat8_1 /application/tomcat8_3
- cd /application/
- sed -i ‘s#8005#8007#;s#8080#8082#’ tomcat8_3/conf/server.xml
- sed -i ‘s#8005#8006#;s#8080#8081#’ tomcat8_2/conf/server.xml
- tomcat安装完成后的基本信息
Tomcat1 | Tomcat2 | Tomcat3 | |
版本 | tomcat-8.5.38 | tomcat-8.5.38 | tomcat-8.5.38 |
路径 | /application/tomcat8_1 | /application/tomcat8_2 | /application/tomcat8_3 |
端口 | SHUTDOWN 8005 HTTP 8080 | SHUTDOWN 8006 HTTP 8081 | SHUTDOWN 8007 HTTP 8082 |
5. 通过tomcat自带session共享
- vim /application/tomcat8_1/conf/server.xml
vim /application/tomcat8_2/conf/server.xml
vim /application/tomcat8_3/conf/server.xml

- vim /application/tomcat8_1/webapps/ROOT/WEB-INF/web.xml
vim /application/tomcat8_2/webapps/ROOT/WEB-INF/web.xml
vim /application/tomcat8_3/webapps/ROOT/WEB-INF/web.xml

- 测试



- 备注:tomcat1,tomcat2,tomcat3,server.xml
和web.xml都一样,记住是修改/application/tomcat8_3/webapps/ROOT/WEB-INF/web.xml,而不是/application/tomcat8_1/conf/web.xml,附带官网文档地址http://tomcat.apache.org/tomcat-8.5-doc/cluster-howto.html,另外每个tomcat版本修改的地方有些不一样,建议看看官方文档
6. 通过memcached实现session共享
- 在192.168.179.21,yum安装memcache
yum install libevent libevent-deve libmemcached
yum install memcached
- vim /etc/sysconfig/Memcached
PORT=”11211″
USER=”memcached”
MAXCONN=”1024″
CACHESIZE=”64″
OPTIONS=”-l 172.16.1.21″
- 运行memcache
systemctl restart Memcached
- 在192.168.179.9,把tomcat还原到第四步,根据https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration#example-for-non-sticky-sessions–kryo,官网介绍, session的序列化方案官方推荐的有4种(1)java serialization;(2)msm-kryo-serializer;(3)msm-javolution-serializer;(4)msm-xstream-serializer,我这里用第二种,按照文档下载

- 把jar包放在tomcat8_1/lib,tomcat8_2/lib,tomcat8_3/lib目录下
- 修改conf/context.xml

- 运行tomcat,测试


