随笔 - 90,  文章 - 0,  评论 - 3,  阅读 - 15868

1.Tomcat集群能带来什么?

1.提高服务的性能,并发能力,以及高可用
2.提高项目架构的扩展能力

2.Tomcat集群实现原理

通过负载均衡进行请求转发

3.Tomcat集群架构图

QQ图片20190928152552.png

Tomcat + Nginx 集群架构实战

#配置负载均衡
[root@lb01 conf.d]# cat proxy_zrlog.oldxu.com.conf 
	upstream  zrlog {
		server 172.16.1.7:8080;
		server 172.16.1.8:8080;
	}

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

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

1.配置虚拟主机

1.配置虚拟主机
[root@web01 conf]# vim /soft/tomcat/conf/server.xml 
<!--session站点-->
  <Host name="session.oldxu.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的方式去访问,测试,检查日志.

Nginx + Tomcat 全站https

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

(不推荐使用)

集群:

[root@lb01 conf.d]# cat proxy_zrlog.oldxu.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.oldxu.com;
	return 302 https://$http_host$request_uri;
}

加入开机自启:将命令加入到该/etc/rc.d/rc.local配置文件中

posted on   杨港澳  阅读(102)  评论(1编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2019-12-24 第五章 存储引擎
2019-12-24 3.索引的应用范围

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示