19.Tomcat集群架构

1.Nginx+Tomcat集群架构介绍

2.Nginx+Tomcat集群架构实战

[[email protected] conf.d]# cat proxy_zrlog.cheng.com.conf
upstream zrlog {
    server 172.16.1.7:8080;
    server 172.16.1.8:8080;
}

server {
    listen 80;
    server_name zrlog.cheng.com;

    location / {
    proxy_pass http://zrlog;
    include proxy_params;
    }
}

3.Nginx+Tomcat集群会话共享 redis cluster

session测试代码用例

1.配置虚拟主机【web01,02操作】
[[email protected] conf]# vim /soft/tomcat/conf/server.xml
<!--session站点-->
  <Host name="session.cheng.com"  appBase="/code/session"
        unpackWARs="true" autoDeploy="true">
  </Host>

2.准备index.jsp文件(为了区分需要调整输出的web01 web02)
[[email protected] conf]# cat /code/session/ROOT/index.jsp
<body>
<%
//HttpSession session = request.getSession(true);
System.out.println(session.getCreationTime());
out.println("<br> web01 SESSION ID:" + session.getId() + "<br>");
out.println("Session created time is :" + session.getCreationTime()
+ "<br>");
%>
</body>

3.下载TomcatClusterRedisSessionManager (所有web集群都需要操作)
GitHub地址    https://github.com/ran-jit/tomcat-cluster-redis-session-manager

[[email protected] ~]# wget https://github.com/ran-jit/tomcat-cluster-redis-session-manager/releases/download/3.0.3/tomcat-cluster-redis-session-manager.zip
[[email protected] ~]# unzip tomcat-cluster-redis-session-manager.zip
[[email protected] ~]# cd tomcat-cluster-redis-session-manager

3.1拷贝jar包
[[email protected] tomcat-cluster-redis-session-manager]# cp lib/* /soft/tomcat/lib/

3.2拷贝tomcat连接redis配置文件
[[email protected] tomcat-cluster-redis-session-manager]# cp conf/redis-data-cache.properties /soft/tomcat/conf/

3.3修改redis-data-cache.properties
[[email protected] ~]# vim /soft/tomcat/conf/redis-data-cache.properties
...
redis.hosts=172.16.1.51:6379
redis.password=123456           #有密码就写密码,没有不要写
...

4.添加如下两行至tomcat/conf/context.xml
[[email protected] ~]# vim /soft/tomcat/conf/context.xml
<Context>
    .....
    <Valve className="tomcat.request.session.redis.SessionHandlerValve" />
    <Manager className="tomcat.request.session.redis.SessionManager" />
    ....
</Context>

5.修改tomcat/conf/web.xml 配置文件session的超时时间 ,单位是分钟
    <session-config>
            <session-timeout>60</session-timeout>       #根据情况调整
    </session-config>

6.安装redis,当然也可以自行搭建redis集群,anyway
[[email protected] ~]# yum install redis -y
[[email protected] ~]# cat /etc/redis.conf
...
bind 172.16.1.51 127.0.0.1
requirepass 123456              #如果不需要密码,则不要配置
...
[[email protected] ~]# systemctl start redis
[[email protected] ~]# systemctl enable redis

7.重启多台机器的Tomcat
[[email protected] ~]# /soft/tomcat/bin/shutdown.sh
[[email protected] ~]# /soft/tomcat/bin/startup.sh

8.接入负载均衡,通过负载均衡轮询调度检查是否正常
[[email protected] conf.d]# cat proxy_session.cheng.com.conf
upstream session {
    server 172.16.1.7:8080;
    server 172.16.1.8:8080;
    server 172.16.1.9:8080;
}

server {
    listen 80;
    server_name session.cheng.com;

    location / {
    proxy_pass http://session;
    proxy_set_header Host $http_host;
    }

}

9.如果session会话不正常:
    将域名解析到指定的服务器,通过8080的方式去访问,测试,检查日志.

4.Nginx+Tomcat集群全站Https

1.单台:
        1.http接收器修改为 80端口  ---> 443
        2.配置443的证书
2.集群:
[[email protected] conf.d]# cat proxy_zrlog.cheng.com.conf
upstream  zrlog {
    server 172.16.1.7:8080;
    server 172.16.1.8:8080;
    server 172.16.1.9:8080;
}

server {
    listen 443 ssl;
    ssl_certificate ssl_key/server.crt;
    ssl_certificate_key ssl_key/server.key;
    server_name zrlog.cheng.com;

    location / {
        proxy_pass http://zrlog;
        include proxy_params;
    }
}
server {
    listen 80;
    server_name zrlog.cheng.com;
    return 302 https://$http_host$request_uri;
}

5.Tomcat开启JMX监控

背景:Tomcat系统运行过程出现错误,需要打开JMX,添加对JVM的监控。Tomcat运行在CentOS中。
前提:监控端windows系统,安装JDK

步骤如下:
1. 服务器关闭Tomcat
[[email protected] conf]# /soft/tomcat/bin/shutdown.sh

2. 进入Tomcat/bin目录,修改catalina.sh,找到如下内容“#—–Execute The Requested Command”,在其上添加以下配置,此配置不需要用户名、密码
    CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=#tomcat本机IP地址
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"

ip是你要监控的tomcat所在服务器的ip地址
端口号,是你要开启的监控端口号。
ssl,false表示不使用ssl链接
authenticate,false表示不使用监控,即不需要用户名和密码

3. 服务器启动Tomcat
[[email protected] conf]# /soft/tomcat/bin/startup.sh

5. 做完以上操作后,使用jdk自带工具jvisualvm.exe连接,工具目录如下:JAVA_HOME/bin,连接方式如下:


原文地址:https://www.cnblogs.com/yinwu/p/11616464.html

时间: 2024-11-05 22:04:18

19.Tomcat集群架构的相关文章

Nginx+keepalived+Tomcat集群架构

keepalived实现nginx发生故障时,自动切换,实现nginx反向代理的高可用. 环境: CentOS6.4  64bit: Jdk6.tar.gz Aapache-tomcat-6.0.41.tar.gz nginx-1.4.2.tar.gz 主机规划: keepalived-master:192.168.115.10 keepalived-slave: 192.168.115.20 tomcat1         : 192.168.115.30 tomcat2         :

Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式百度云实战分享

muke慕课实战课程分享QQ313675301 新增课程: Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式百度云实战分享 后端开发: 1.高级java软件架构师实战培训视频教程2.大型SpringMVC,Mybatis,Redis,Solr,Nginx,SSM分布式电商项目视频教程3.Spark Streaming实时流处理项目实战4.Java校招面试 Google面试官亲授5.Java开发企业级权限管理系统6.Java大牛 带你从0到上线开发企业级电商项目7.Java

Java企业级电商项目架构演进之路Tomcat集群与Redis分布式

Java企业级电商项目架构演进之路Tomcat集群与Redis分布式网盘地址:https://pan.baidu.com/s/1taAooW3AhdGcdGSvOLqjkg 密码:nwip备用地址(腾讯微云):https://share.weiyun.com/5JdkNHX 密码:s9pm74 第1章 课程介绍[赠送一期源码+一期内容回顾]第2章 Lombok框架集成及原理解析第3章 Maven环境隔离应用场景及验证实战第4章 Tomcat集群演进详解及环境搭建第5章 Redis基础强化第6章

Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式

Java企业级电商项目架构演进之路  Tomcat集群与Redis分布式 Redisson介绍Redisson是架设在Redis基础上的一个java驻内存数据网格.Redisson在基于NIO的Netty框架上,充分的利用了Redis键值数据库提供的一系列优势.在java使用工具包中常用接口的基础上,为使用者提供了一系列具有分布式特性的常用工具类.使得原本作为协调单机多线程并发程序的工具包获得了协调分布式多机多线程并发系统的能力,大大降低了设计和研发大规模分布式系统的难度.同时结合各富特色的分布

高性能站点架构之负载均衡 Nginx+tomcat+redis实现tomcat集群

上一篇文章给大家讲了Nginx的安装,那么这篇文章为大家讲一下Nginx+Tomcat实现负载均衡. 先说说为什么要用ngnix 做负载均衡.事实上做负载均衡的最出名的莫过于F5了.F5是在硬件设施,动辄几万,几十万,几百万不等,对于一般的小公司来说,这也是一笔非常大的开销.所以能尽量的使用软件.还是使用软件,效果上尽管会差一些,可是还是可以起到一定的作用的. 环境准备 三台装有centos6.5 系统的机器.当中两台机器上装有tomcat7,一台机器上装有nginx3.0.2,至于详细怎样安装

Tomcat多实例集群架构 安全优化和性能优化

Tomcat多实例 复制tomcat目录 #将tar解压出来的tomcat复制出两个实例来cp -a /usr/local/apache-tomcat-8.0.46 /usr/local/tomcat1 cp -a /usr/local/apache-tomcat-8.0.46 /usr/local/tomcat2 修改多实例配置文件 #创建多实例的网页根目录 mkdir -p /data/www/www/ROOT #修改多实例配置文件的以下三行 vim /usr/local/tomcat/co

二、ELKStack集群架构设计

一.ELKStack介绍与入门实践 二.Elasticsearch 集群架构图 服务器配置:Centos6.6 x86_64 CPU:1核心 MEM:2G (做实验,配置比较低一些) 注:这里配置elasticsearch集群用了3台服务器,可以根据自己的实际情况进行调整. 三.开始安装配置nginx和logstash 注:这里使用yum安装,如果需要较高版本的,可以使用编译安装. 在10.0.18.144上操作,10.0.18.145配置方式和144是一样的. 1.安装nginx 配置yum源

LVS+Keepalived+Squid+Nginx+MySQL主从高性能集群架构部署方案

方案一,在tomcat的workers.properties里面配置相关条件 worker.tomcat.lbfactor=50 worker.tomcat.cachesize=10 worker.tomcat.cache_timeout=600 worker.tomcat.socket_keepalive=1 worker.tomcat.socket_timeout=300 Linux内核优化: vi /etc/sysctl.conf   # 编辑sysctl.conf文件添加以下内容net.

Tomcat集群环境下session共享方案梳理(1)-通过memcached(MSM)方法实现

对于web应用集群的技术实现而言,最大的难点就是:如何能在集群中的多个节点之间保持数据的一致性,会话(Session)信息是这些数据中最重要的一块.要实现这一点, 大体上有两种方式: 一种是把所有Session数据放到一台服务器上或者数据库中,集群中的所有节点通过访问这台Session服务器来获取数据: 另一种就是在集群中的所有节点间进行Session数据的同步拷贝,任何一个节点均保存了所有的Session数据. Tomcat集群session同步方案有以下几种方式: 1)使用tomcat自带的