• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
坠落的星辰
博客园    首页    新随笔    联系   管理    订阅  订阅

Tomcat集群架构

#1.Tomcat
#2.jvm  --> jre     jdk
#3.jdk
	openjdk
	oraclejdk
#4.tomcat
	yum装   	<--借用tomcat测试
	二进制装	<--安装
#5.tomcat配置文件
	server:     代表一个实例  8080端口
	Listener:   监听器
	connector:  连接器
		http	http/1.1
		https	https
		ajp		httpd+tomcat使用mod_jk
		.........
	service:   关联连接器和engine
	engine:    引擎 (N多个Host)
		Host:  代表一个网站 (N多个context)
			context:  类似nginx location  url匹配
	cluster:
		集群(session复制   -->集群组名称-->集群组成员)
		redis

1、Nginx+Tomcat集群架构实战

[root@lb01 conf.d]# cat proxy_zrlog.yangdan.com.conf 
upstream  zrlog {
	server 172.16.1.7:8080;
	server 172.16.1.8:8080;
}

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

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

2、Nginx+Tomcat集群会话共享 redis cluster

session测试代码用例

#1.配置虚拟主机
[root@web01 conf]# vim /soft/tomcat/conf/server.xml 
<!--session站点-->
  <Host name="session.yangdan.com"  appBase="/code/session"
        unpackWARs="true" autoDeploy="true">
  </Host>

#2.准备index.jsp文件(为了区分需要调整输出的web01 web02)
[root@web01 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

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

    #1.拷贝jar包
    [root@web01 tomcat-cluster-redis-session-manager]# cp lib/* /soft/tomcat/lib/

   # 2.拷贝tomcat连接redis配置文件
    [root@web01 tomcat-cluster-redis-session-manager]# cp conf/redis-data-cache.properties/soft/tomcat/conf/

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


#4.添加如下两行至tomcat/conf/context.xml
[root@web01 ~]# 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
[root@redis ~]# yum install redis -y
[root@redis ~]# cat /etc/redis.conf
...
bind 172.16.1.51 127.0.0.1
requirepass 123456				#如果不需要密码,则不要配置
...
[root@redis ~]# systemctl start redis
[root@redis ~]# systemctl enable redis


#7.重启多台机器的Tomcat

#8.接入负载均衡,通过负载均衡轮询调度检查是否正常


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

3、Nginx+Tomcat集群全站Https

单台:	
	1.http接收器修改为 80端口  ---> 443
	2.配置443的证书
集群:

[root@lb01 conf.d]# cat proxy_zrlog.yangdan.com.conf 
upstream  zrlog {
	server 172.16.1.7:8080;
	server 172.16.1.8:8080;
}

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

	location / {
		proxy_pass http://zrlog;
		include proxy_params;
	}
}
server {
	listen 80;
	server_name zrlog.yangdan.com;
	return 302 https://$http_host$request_uri;
}
posted @ 2019-12-24 11:28  坠落的星辰  阅读(337)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3