企业化运维(4)_tomcat

###1.配置tomcat###

可以将tomcat部署在server2主机,与nginx主服务器分开,便于进行交互存储。
下载安装jdk与tomcat,并开启服务,便可以在浏览器进行访问。

[root@server3 ~]# rpm -ivh jdk-8u121-linux-x64.rpm
[root@server3 ~]# tar xf apache-tomcat-7.0.37.tar.gz  -C /usr/local/
[root@server3 ~]# cd /usr/local/
[root@server3 local]# ln -s apache-tomcat-7.0.37/ tomcat
[root@server3 local]# cd tomcat/
启动服务
[root@server3 tomcat]# bin/startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@server3 tomcat]# netstat -antlp|grep :8080
tcp6       0      0 :::8080                 :::*                    LISTEN      8482/java

server3上也部署tomcat,步骤一致,以此类推

测试
访问:http://192.168.76.12:8080/
      http://192.168.76.13:8080/

###2.nginx整合tomcat(反向代理+负载均衡)###

(1)server1配置

在server1nginx配置文件中设置反向代理和负载均衡,通过server1可以均衡访问server2和server3

[root@server1 ~]# cd /usr/local/nginx/conf/
[root@server1 conf]# vim nginx.conf
///
upstream tomcat {
        sticky;
        server 192.168.56.12:8080;
        server 192.168.56.13:8080;
    }
 ... 
 
location ~ \.jsp$ {
            proxy_pass   http://tomcat;
        }
///
[root@server1 conf]# nginx  -s reload

 

(2)在server2和server3上拷贝测试页面 

[root@server2 ~]# cd /usr/local/tomcat/webapps/ROOT/
[root@server2 ROOT]# ll test.jsp
-rw-r--r-- 1 root root 968 Feb 24 14:47 test.jsp

(3)测试 

测试: http://192.168.76.11/test.jsp

当server2的tomcat服务关闭,但是用户并不知道server2关闭,nginx将自动调度server3主机进行信息存储。此时服务器为server3,因为server2与server3信息不共享,因此信息消失。 

###3.tomcat整合memcache交互存储进行session共享###

tomcat本身存储所有的信息,memcache只是为了session共享,是tomcat的额外存储。

nginx调用其中一台主机的tomcat,并将信息交叉存储在另一台主机的memcache中,即就是,tomcat1将信息存在memcache2中。

如果tomcat1不能使用,nginx则自动调度tomcat2,此时将信息存储在本机memcache2中,信息此时是完整的。如果tomcat1恢复,则重新调度tomcat1,将信息继续存储在memcache2中,信息依旧完整。

如果memcache2不能使用,tomcat1将把信息存放在memcache1中,此时信息仍然完整,因为,tomcat1本身将所有的信息存储在本机memory中,memcache只是为了额外存储。

这样,无论什么情况,都最大限度的保证了数据的完整性,且信息同步共享。

tomcat服务通过msm模块把session信息交叉存储到memcached上

(1)应用服务器上安装memcache

[root@server2 ~]# yum install -y memcached
[root@server2 ~]# systemctl  enable --now memcached
[root@server2 ~]# netstat -antlp|grep :11211
tcp        0      0 0.0.0.0:11211           0.0.0.0:*               LISTEN      7297/memcached

server3上类似以此类推

 

(2)设置交叉存储 

在server2主机中对tomcat的配置文件进行编辑,设定交叉存储,将自身memcache设为n1,server3主机的memcache设为n2,正常运行时将信息存放在n2,不能正常运行时,将信息存储在n1,即自身memcache。 

配置server3的tomcat服务,编辑配置文件,设定交叉存储,正常运行时将信息存放在n1,不能正常运行时,将信息存储在n2,即自身memcache。

导包
[root@server2 ~]# yum install -y unzip
[root@server2 ~]# unzip jar.zip

[root@server2 jar]# ls
asm-3.2.jar    kryo-serializers-0.10.jar            memcached-session-manager-tc7-1.6.3.jar  msm-kryo-serializer-1.6.3.jar  spymemcached-2.7.3.jar
kryo-1.04.jar  memcached-session-manager-1.6.3.jar  minlog-1.2.jar                           reflectasm-1.01.jar
[root@server2 jar]# cp * /usr/local/tomcat/lib/
[root@server2 jar]# cd /usr/local/tomcat/conf

[root@server2 conf]# vim context.xml
...
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.56.12:11211,n2:192.168.56.13:11211"
failoverNodes="n1"		#server3上修改为n2
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>

server2 

 

server3 

重启tomcat
[root@server2 conf]# cd ..
[root@server2 tomcat]# bin/shutdown.sh
[root@server2 tomcat]# bin/startup.sh
查看日志
[root@server2 tomcat]# cat logs/catalina.out

server2

server3

(3)测试 

测试: http://192.168.76.11/test.jsp

  • 23
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值