Tomcat的优化
Tomcat配置文件优化
- Tomcat默认安装下的缺省配置并不合适生产环境,可能会出现假死现象需要重新启动,只有通过不断地优化才能能高效稳定地运行。
优化分为三步:
操作系统优化(内核参数优化);
tomcat配置文件参数优化;
java虚拟机(JVM)调优。
常用的优化相关参数
maxThreads : Tomcat使用线程来处理接受的每个请求,这个值表示tomcat可创建的最大的线程数,默认值是200
minSpareThreads :最小空闲线程数,Tomcat启动时的初始化线程数,表示即使没有人使用也开那么多空线程等待,默认值是10
maxSpareThreads :最大备用线程数,一旦创建的线程超过这个数,Tomcat就会关闭不再需要的socket线程,默认值是-1(无限制)
URIEncoding :指定Tomcat容器的URL编码格式
connectionTimeout :网络连接超时,单位毫秒,设置为0,表示永不超时,默认20000毫秒
enableLookups :是否反查域名
disableUploadTimeout :上传时是否使用超时机制
connectionUploadTimeout : 上传超时时间
acceptCount :指定当所有可以使用的处理请求的线程数都被使用时,可传入连接请求的最大队列长度,默认为100个
compression : 是否对响应的数据进行Gzip压缩
compressionMinSize : 表示压缩响应的最小值
compressableMimeType : 压缩类型
noCompressionUserAgents=“gozila,traviata” :对于以下的浏览器,不启用压缩
修改配置文件
//
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
<Connector port="8080" protocol="HTTP/1.1"
70 connectionTimeout="20000"
71 redirectPort="8443"
72 minSpareThreads="50" #最小空闲进程数
73 enableLookups="false" #不反查域名,直接返回IP地址
74 disableUploadTimeout="true" #开启上传超时机制
75 acceptCount="300" #最大队列长度
76 maxThreads="500" #Tomcat可创建最大线程数
77 processorCache="500" #系统可以缓存对象的数量
78 URIEncoding="UTF-8" #字符集
79 compression="on" #开启压缩
80 compressionMinSize="2048" #响应压缩的最小值 81 compressableMimeType="text/html,text/xml,text/javascript,t ext/css,text/plain,image/gif,image/jpg,image/png" /> ##支持压缩的类型
//
[root@localhost ~]# 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/java/jdk1.8.0_201-amd64
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@localhost ~]# netstat -antp | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 33001/java
Nginx + Tomcat 动静分离
Nginx静态优势
Nginx处理静态页面的效率高于tomcat的处理能力
Nginx处理静态资源的能力是tomcat处理的6倍
//
nginx: 192.168.142.133
tomcat1: 192.168.142.142
tomcat2: 192.168.142.150
测试: 192.168.
Nginx端设置
//
[root@localhost nginx-1.15.9]# vim /usr/local/nginx/conf/nginx.conf
28 #tcp_nopush on;
29
30 #keepalive_timeout 0;
31 keepalive_timeout 65;
32
33 #gzip on;
34 upstream tomcat_server {
35 server 192.168.142.142:8080 weight=1;
36 server 192.168.142.150:8080 weight=1;
37 }
38 server {
39 listen 80;
40 server_name localhost;
41
42 #charset koi8-r;
43
44 #access_log logs/host.access.log main;
45
46 location / {
47 root html;
48 index index.html index.htm;
49 }
50 location ~ .*\.jsp$ {
51 proxy_pass http://tomcat_server;
52 proxy_set_header HOST $host;
53 proxy_set_header X-Real-IP $remote_addr;
54 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
55 set_real_ip_from 192.168.142.150/24;
56 set_real_ip_from 192.168.142.142/24;
57 real_ip_header X-Forwarded-For;
58 }
Tomcat1服务器配置
创建项目的目录和文件
//
[root@localhost ~]# cd /usr/local/tomcat/webapps/
[root@localhost webapps]# mkdir test
[root@localhost webapps]# cd test/
[root@localhost test]# vim tt.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
<html>
<head>
<title>tomcat1</title>
</head>
<body>
<% out.println("哈哈哈哈");%>
</body>
</html>
配置虚拟主机
//
[root@localhost test]# vim /usr/local/tomcat/conf/server.xml
shutdown.sh
startup.sh
Tomcat1服务器配置
和tomcat1一样的步骤
创建项目的目录和文件
//
[root@localhost ~]# cd /usr/local/tomcat/webapps/
[root@localhost webapps]# mkdir test
[root@localhost webapps]# cd test/
[root@localhost test]# vim tt.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
<html>
<head>
<title>tomcat1</title>
</head>
<body>
<% out.println("嘻嘻嘻");%>
</body>
</html>
配置虚拟主机
//
[root@localhost test]# vim /usr/local/tomcat/conf/server.xml
shutdown.sh
startup.sh
测试动静分离