Tomcat优化与动静分离


Tomcat 默认安装下的缺省配置并不适合生产环境,它会频繁出现假死现象需要重启,只有通过不断压测优化才能让它最高效率稳定的运行。优化主要包括三方面,分别为操作系统优化(内核参数优化),Tomcat 配置文件参数优化,Java 虚拟机(JVM)调优。其中最难理解的就是 JVM 调优。

一、Tomcat配置文件参数优化

关于 Tomcat 主配置文件 server.xml 里面很多默认的配置项,并不能满足业务需求,常用的优化参数如下。
【redirectPort】如果某连接器支持的协议是HTTP,当接收客户端发来的HTTPS请求时,则转发至此属性定义的 8443 端口。

【maxThreads】Tomcat使用线程来处理接收的每个请求,这个值表示Tomcat可创建的最大的线程数,即支持的最大并发连接数,默认值是 200。

【minSpareThreads】最小空闲线程数,Tomcat 启动时的初始化的线程数,表示即使没有人使用也开这么多空线程等待,默认值是 10。

【maxSpareThreads】最大备用线程数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。默认值是-1(无限制)。一般不需要指定。

【processorCache】进程缓冲器,可以提升并发请求。默认值是200,如果不做限制的话可以设置为-1,一般采用maxThreads的值或者-1。

【URIEncoding】指定 Tomcat 容器的 URL 编码格式,网站一般采用UTF-8作为默认编码。

【connnectionTimeout】网络连接超时,单位:毫秒,设置为 0 表示永不超时,这样设置有隐患的。通常默认 20000 毫秒就可以。

【enableLookups】是否反查域名,以返回远程主机的主机名,取值为:true 或 false,如果设置为 false,则直接返回 IP 地址,为了提高处理能力,应设置为 false。

【disableUploadTimeout】上传时是否使用超时机制。应设置为 true。

【connectionUploadTimeout】上传超时时间,毕竟文件上传可能需要消耗更多的时间,这个根据你自己的业务需要自己调,以使Servlet有较长的时间来完成它的执行,需要与上一个参数一起配合使用才会生效。

【acceptCount】指定当所有可以使用的处理请求的线程数都被使用时,可传入连接请求的最大队列长度,超过这个数的请求将不予处理,默认为 100 个。

【maxKeepAliveRequests】指定一个长连接的最大请求数。默认长连接是打开的,设置为1时,代表关闭长连接;为-1时,代表请求数无限制

【compression】是否对响应的数据进行GZIP压缩,off:表示禁止压缩;on:表示允许压缩(文本将被压缩)、force:表示所有情况下都进行压缩,默认值为 off,压缩数据后可以有效的减少页面的大小,一般可以减小 1/3 左右,节省带宽。

【compressionMinSize】表示压缩响应的最小值,只有当响应报文大小大于这个值的时候才会对报文进行压缩,如果开启了压缩功能,默认值就是 2048。

【compressableMimeType】压缩类型,指定对哪些类型的文件进行数据压缩。

【noCompressionUserAgents=“gozilla, traviata”】对于以下的浏览器,不启用压缩
#如果已经进行了动静分离处理,静态页面和图片等数据就不需做 Tomcat 处理,也就不要在 Tomcat 中配置压缩了。

以上是一些常用的配置参数,还有好多其它的参数设置,还可以继续深入的优化,HTTP Connector 与 AJP Connector 的参数属性值,可以参考官方文档的详细说明进行学习。

操作步骤:
vim /usr/local/tomcat/conf/server.xml
在这里插入图片描述

二、负载均衡,动静分离

在这里插入图片描述
其原理为:服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源由nginx提供服务,由于nginx处理动态资源的能力较差,所以动态资源nginx会转发至后端。
在这里插入图片描述

七层代理配置

需准备三台虚拟机:
nginx服务器:192.168.136.53:80
tomcat服务器1(一个实例):192.168.136.54:8080
tomcat服务器2(两个实例):192.168.136.55:8080 192.168.136.55:8081

三台虚拟机的基础配置前期都有讲解,这里就直接进入七层代理的配置。

(1)Tomcat1 server 的动静分离配置
mkdir /usr/local/tomcat/webapps/test
vim /usr/local/tomcat/webapps/test/index.jsp
在这里插入图片描述
vim /usr/local/tomcat/conf/server.xml
#由于主机名 name 配置都为 localhost,需要删除前面的 HOST 配置
在这里插入图片描述
systemctl restart tomcai 别忘了配置完事之后重启服务

(2)Tomcat2 server 的动静分离配置
mkdir /usr/local/tomcat/tomcat1/webapps/test /usr/local/tomcat/tomcat2/webapps/test

在这里插入图片描述
vim /usr/local/tomcat/tomcat1/conf/server.xml
在这里插入图片描述
systemctl restart tomcai 别忘了配置完事之后重启服务

vim /usr/local/tomcat/tomcat2/webapps/test/index.jsp
在这里插入图片描述
vim /usr/local/tomcat/tomcat2/conf/server.xml
在这里插入图片描述
systemctl restart tomcai 别忘了配置完事之后重启服务

3)Nginx server 动静分离配置
先准备静态页面和静态图片
echo ‘<html><body><h1>这是静态页面</h1></body></html>’ > /usr/local/nginx/html/index.html
mkdir /usr/local/nginx/html/img
cp /root/game.jpg /usr/local/nginx/html/img

vim /usr/local/nginx/conf/nginx.conf
在这里插入图片描述
4.测试效果
测试静态页面效果
浏览器访问 http://192.168.136.53/
在这里插入图片描述

浏览器访问 http://192.168.136.53/game.jpg
在这里插入图片描述

测试负载均衡效果,不断刷新浏览器测试
浏览器访问 http://192.168.136.53/test/index.jsp
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四层代理配置

四层代理需要使用五台虚拟机:
nginx服务器:192.168.136.51:80
nginx服务器1:192.168.136.52:80
nginx服务器2:192.168.136.53:80
tomcat服务器1(一个实例):192.168.136.54:8080
tomcat服务器2(两个实例):192.168.136.55:8080 192.168.136.55:8081
在这里插入图片描述
在现有七层代理的基础上再添加一个七层代理虚拟机。
配置完可以测试一下
在这里插入图片描述
再添加一台Nginx虚拟机,用来做接收客户端的信息
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值