企业级应用TOMCAT 第1章 Tomcat 第2章 Tomcat安装   第3章 Tomcat在CentOS7启动慢 第4章 通过web管理Tomcat 第5章 Tomcat多实例及反向代理 第6章 Tomcat监控 第七章 Tomcat性能优化

1.1 Tomcat简介

Tomcat是一个免开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不多的场合下被普遍使用,是开发调试JSP程序的首选,另外它还是Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式

其类似Nginx、Apache(httpd)、lighttpd等Web服务器

nginx和http只能处理html等静态文件(jpg),配合php就能够处理动态的网页(以.php结尾);

tomcat也能够处理静态的html文件,配合hdk能够处理动态网页(以.jsp结尾)

但Tomcat处理静态HTML的能力不如Nginx/Apache

1.2 软件版本选择

JDK下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Tomcat下载:http://tomcat.apache.org/

说明:在生产环境下,使用Tomcat安装版本需同开发协商,Tomcat和JDK版本需并行(tomcat8<=>jdk8)

第2章 Tomcat安装

2.1 安装JDK(⭐以后所有涉及到java应用的都需要安装)

JDK->JAVA虚拟机(jvm)->一处编译,处处使用

1 tar xf jdk-8u60-linux-x64.tar.gz -C /application/
2 ln -s /application/jdk1.8.0_60 /application/jdk   #其他版本同理->只需修改版本号,安装方法相同
3 
4 sed -i.ori '$a export JAVA_HOME=/application/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar' /etc/profile
5 
6 source /etc/profile
7 java -version

2.2 安装Tomcat

1 tar xf apache-tomcat-8.0.27.tar.gz -C /application/
2 ln -s /application/apache-tomcat-8.0.27 /application/tomcat
3 echo 'export TOMCAT_HOME=/application/tomcat'>>/etc/profile
4 source /etc/profile
5 chown -R root.root /application/jdk/ /application/tomcat/

出现下述结果即表示部署成功

 1 [root@web03 ~]# /application/tomcat/bin/version.sh   #查看tomcat软件有关信息
 2 Using CATALINA_BASE:   /application/tomcat
 3 Using CATALINA_HOME:   /application/tomcat
 4 Using CATALINA_TMPDIR: /application/tomcat/temp
 5 Using JRE_HOME:        /application/jdk
 6 Using CLASSPATH:       /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar
 7 Server version: Apache Tomcat/8.0.27
 8 Server built:   Sep 28 2015 08:17:25 UTC
 9 Server number:  8.0.27.0
10 OS Name:        Linux
11 OS Version:     3.10.0-693.el7.x86_64
12 Architecture:   amd64
13 JVM Version:    1.8.0_60-b27
14 JVM Vendor:     Oracle Corporation

2.2.1 Tomcat目录结构

 1 [root@web03 tools]# cd  /application/tomcat/
 2 
 3 [root@web03 tomcat]# tree -L 1
 4 .
 5 ├── bin   #用以启动/关闭Tomcat或者其它功能的脚
 6 │   ├── catalina.sh   #核心
 7 │   ├── shutdown.sh   #关闭tomcat服务
 8 │   ├── startup.sh   #启动tomcat服务
 9 ├── conf   #用以配置Tomcat的XML文件
10 │   ├── server.xml   #主配置文件
11 │   ├── tomcat-users.xml   #管理用户的配置文件
12 ├── lib 
13 ├── LICENSE
14 ├── logs   #Web应用程序的日志文件
15 │   ├── catalina.out***
16 ├── NOTICE
17 ├── RELEASE-NOTES
18 ├── RUNNING.txt
19 ├── temp   #临时目录
20 ├── webapps   #Web网页应用程序根目录->站点目录
21 └── work

2.2.2 webapps站点目录

1 [root@web03 tomcat]# cd webapps/
2 [root@web03 webapps]# ll
3 total 20
4 drwxr-xr-x 14 root root 4096 Oct  5 12:09 docs         #tomcat帮助文档
5 drwxr-xr-x  6 root root 4096 Oct  5 12:09 examples     #web应用实例
6 drwxr-xr-x  5 root root 4096 Oct  5 12:09 host-manager  #管理
7 drwxr-xr-x  5 root root 4096 Oct  5 12:09 manager      #管理
8 drwxr-xr-x  3 root root 4096 Oct  5 12:09 ROOT       #默认网站根目录

2.3 启动/关闭Tomcat

 1 /application/tomcat/bin/startup.sh 2 /application/tomcat/bin/shutdown.sh 

注意:未启动时关闭会报一堆错误

1 [root@web03 ~]# netstat -lntup|grep java   #凡跟java有关的程序均需查看java端口
2 tcp6       0      0 :::8080                 :::*                    LISTEN      1464/java
3 tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1464/java
4 tcp6       0      0 :::8009                 :::*                    LISTEN      1464/java

2.3.1 访问web网站测试

http://10.0.0.17:8080/   #tomcat默认端口8080

2.4 查看日志信息

1 cd /application/tomcat/logs/
2 ll   # catalina.out->实时记录tomcat的运行信息(文件越来越大需要定时清空>)
3 
4 [root@web03 logs]# tailf catalina.out   #查看日志信息
5 24-Nov-2017 09:47:45.098 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 1296 ms

 

第3章 Tomcat在CentOS7启动慢

3.1 现象

在CentOS7启动Tomcat时,启动过程很慢需要几分钟,经过查看日志发现耗时在这里:是session引起的随机数问题导致的。Tocmat的Session ID是通过SHA1算法计算得到的,计算Session ID的时候必须有一个密钥,为了提高安全性Tomcat在启动的时候会通过随机生成一个密钥

3.1.1 实例

1 22-Apr-2017 19:33:07.623 INFO [localhost-startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [55,507] milliseconds.
2 
3 22-Apr-2017 19:33:07.653 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /application/apache-tomcat-8.0.27/webapps/ROOT has finished in 55,935 ms

3.2 主要原因

生成随机数的时候卡住了,导致tomcat无法启动

为了加速/dev/random提供随机数的速度,你可以通过操作设备的外设,让其产生大量的中断(如网络传输数据,按键,移动鼠标,在命令行敲几个不同的命令,俗称聚气)

cat /dev/random &>/dev/null会消耗能量

3.3 解决方法

方法01

 1 vim $JAVA_HOME/jre/lib/security/java.security 2 securerandom.source=file:/dev/urandom 

方法02

1 vim $TOMCAT_HOME/bin/catalina.sh
2 if [[ "$JAVA_OPTS" != *-Djava.security.egd=* ]]; then
3     JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/urandom"
4 fi

#这个系统属性egd表示熵收集守护进程(entropy gathering daemon)

方法03(推荐)

 1 yum install -y rng-tools #安装rngd服务(熵服务,增大熵池) 2 systemctl start rngd.service #此服务建议开机自启 3 systemctl status rngd.service 

03.1设置开机自启

 1 cat >>/etc/rc.d/rc.local<<EOF 2 systemctl start rngd.service 3 /application/tomcat/bin/startup.sh 4 EOF 

注意:在虚拟机内,AMD CPU不支持第三种方法

第4章 通过web管理Tomcat

测试功能,生产环境禁用!

4.1 定义web页面用户名及密码

 1 sed -i.ori '$i <role rolename="manager-gui"/> <role rolename="admin-gui"/> <user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>' /application/tomcat/conf/tomcat-users.xml 

1 [root@web03 ~]# tail -4 /application/tomcat/conf/tomcat-users.xml
2 <role rolename="manager-gui"/>
3 <role rolename="admin-gui"/>
4 <user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
5 </tomcat-users>   #注意:是在此行前加入上面三行

4.2 重启tomcat服务

 1 /application/tomcat/bin/shutdown.sh 2 /application/tomcat/bin/startup.sh 

企业级应用TOMCAT
第1章 Tomcat
第2章 Tomcat安装
 
第3章 Tomcat在CentOS7启动慢
第4章 通过web管理Tomcat
第5章 Tomcat多实例及反向代理
第6章 Tomcat监控
第七章 Tomcat性能优化

4.3 Tomcat主配置文件/application/tomcat/conf/server.xml

语法

注释:以<!--开头,并以-->结尾,中间包含的都是注释,即段注释

4.3.1 server.xml组件类别

顶级组件:位于整个配置的顶层,如server

容器类组件:可以包含其它组件的组件,如service、engine、host、context

连接器组件:连接用户请求至tomcat,如connector

被嵌套类组件:位于一个容器当中,不能包含其他组件,如Valve、logger

 1 <server>
 2      <service>
 3      <connector />
 4      <engine>
 5      <host>
 6      <context></context>
 7      </host>
 8      <host>
 9      <context></context>
10      </host>
11      </engine>
12      </service>
13 </server>

4.3.2 组件详解

  • engine:核心容器组件,catalina引擎,负责通过connector接收用户请求,并处理请求,将请求转至对应的虚拟主机host。
  • host:类似于httpd中的虚拟主机,一般而言支持基于FQDN的虚拟主机。
  • context:定义一个应用程序,是一个最内层的容器类组件(不能再嵌套)。配置context的主要目的指定对应对的webapp的根目录,类似于httpd的alias,其还能为webapp指定额外的属性,如部署方式等。
  • connector:接收用户请求,类似于httpd的listen配置监听端口的。
  • service(服务):将connector关联至engine,因此一个service内部可以有多个connector,但只能有一个引擎engine。service内部有两个connector,一个engine。因此,一般情况下一个server内部只有一个service,一个service内部只有一个engine,但一个service内部可以有多个connector。
  • server:表示一个运行于JVM中的tomcat实例。
  • Valve:阀门,拦截请求并在将其转至对应的webapp前进行某种处理操作,可以用于任何容器中,比如记录日志(access log valve)、基于IP做访问控制(remote address filter valve)。
  • logger:日志记录器,用于记录组件内部的状态信息,可以用于除context外的任何容器中。
  • realm:可以用于任意容器类的组件中,关联一个用户认证库,实现认证和授权。可以关联的认证库有两种:UserDatabaseRealm、MemoryRealm和JDBCRealm。
  • UserDatabaseRealm:使用JNDI自定义的用户认证库。
  • MemoryRealm:认证信息定义在tomcat-users.xml中。
  • JDBCRealm:认证信息定义在数据库中,并通过JDBC连接至数据库中查找认证用户。

4.3.3 配置文件详述

 1 <?xml version='1.0' encoding='utf-8'?>
 2 <!--
 3 <Server>元素代表整个容器,是Tomcat实例的顶层元素.由org.apache.catalina.Server接口来定义.它包含一个<Service>元素.并且它不能做为任何元素的子元素.
 4     port指定Tomcat监听shutdown命令端口.终止服务器运行时,必须在Tomcat服务器所在的机器上发出shutdown命令.该属性是必须的.
 5     shutdown指定终止Tomcat服务器运行时,发给Tomcat服务器的shutdown监听端口的字符串.该属性必须设置
 6 -->
 7 <Server port="8005" shutdown="SHUTDOWN">
 8   <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
 9   <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
10   <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
11   <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
12   <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
13   <GlobalNamingResources>
14     <Resource name="UserDatabase" auth="Container"
15               type="org.apache.catalina.UserDatabase"
16               description="User database that can be updated and saved"
17               factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
18               pathname="conf/tomcat-users.xml" />
19   </GlobalNamingResources>
20   <!--service服务组件-->
21   <Service name="Catalina">
22     <!--
23     connector:接收用户请求,类似于httpd的listen配置监听端口.
24         port指定服务器端要创建的端口号,并在这个端口监听来自客户端的请求。
25         address:指定连接器监听的地址,默认为所有地址(即0.0.0.026         protocol连接器使用的协议,支持HTTP和AJP。AJP(Apache Jserv Protocol)专用于tomcat与apache建立通信的, 在httpd反向代理用户请求至tomcat时使用(可见Nginx反向代理时不可用AJP协议)。
27         minProcessors服务器启动时创建的处理请求的线程数
28         maxProcessors最大可以创建的处理请求的线程数
29         enableLookups如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址
30         redirectPort指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
31         acceptCount指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
32         connectionTimeout指定超时的时间数(以毫秒为单位)
33     -->
34     <Connector port="8080" protocol="HTTP/1.1"
35                connectionTimeout="20000"
36                redirectPort="8443" />
37     <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
38     <!--engine,核心容器组件,catalina引擎,负责通过connector接收用户请求,并处理请求,将请求转至对应的虚拟主机host
39         defaultHost指定缺省的处理请求的主机名,它至少与其中的一个host元素的name属性值是一样的
40     -->
41     <Engine name="Catalina" defaultHost="localhost">
42       <!--Realm表示存放用户名,密码及role的数据库-->
43       <Realm className="org.apache.catalina.realm.LockOutRealm">
44         <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
45                resourceName="UserDatabase"/>
46       </Realm>
47       <!--
48       host表示一个虚拟主机
49         name指定主机名
50         appBase应用程序基本目录,即存放应用程序的目录.一般为appBase="webapps" ,相对于CATALINA_HOME而言的,也可以写绝对路径。
51         unpackWARs如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序
52         autoDeploy:在tomcat启动时,是否自动部署。
53         xmlValidation:是否启动xml的校验功能,一般xmlValidation="false"54         xmlNamespaceAware:检测名称空间,一般xmlNamespaceAware="false"55       -->
56       <Host name="localhost"  appBase="webapps"
57             unpackWARs="true" autoDeploy="true">
58         <!--
59         Context表示一个web应用程序,通常为WAR文件
60             docBase应用程序的路径或者是WAR文件存放的路径,也可以使用相对路径,起始路径为此Context所属Host中appBase定义的路径。
61             path表示此web应用程序的url的前缀,这样请求的url为http://localhost:8080/path/****
62             reloadable这个属性非常重要,如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,可以在不重启tomcat的情况下改变应用程序
63         -->
64         <Context path="" docBase="" debug=""/>
65         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
66                prefix="localhost_access_log" suffix=".txt"
67                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
68       </Host>
69     </Engine>
70   </Service>
71 </Server>

4.3.2.1  关于8005端口的注释

 <Server port="8005" shutdown="SHUTDOWN"> 

提示:echo SHUTDOWN|nc 127.0.0.1 8005  #直接关闭所有tomcat相关软件

注意:现版本上本机的任意用户均可操作,但老版本tomcat只要连接本机即可发消息->危险

且不建议注释此功能,会影响系统操作并导致所有shutdown命令无法使用,只能使用kill/pkill关闭

建议方法为:修改端口号8005为其他任意随机端口,暗号亦可随机修改==>增加安全性(视情况而定)

4.4 WEB站点部署(代码上线)

代码上线有两种方式

方法一:即直接将程序目录放在webapps目录下;

方法二:即用开发工具将程序打包成war包,然后上传到webapps目录下

4.4.1 使用war包部署web站点

 1 [root@web03 ~]# cd /application/tomcat/webapps/ 2 rz #上传memtest.war 3 [root@web03 webapps]# ll 

浏览器访问http://10.0.0.17:8080/memtest/meminfo.jsp即可

4.4.2 自定义默认网站目录

 前地址http://10.0.0.17:8080/memtest/meminfo.jsp 现地址http://10.0.0.17:8080/meminfo.jsp 

方法1.将jsp文件或其他程序放在tomcat/webapps/ROOT目录下即可。因为默认网站根目录为tomcat/webapps/ROOT

方法2.修改主配置文件

1 cp /application/tomcat/conf/server.xml{,.ori}
2 
3 vim /application/tomcat/conf/server.xml +125
4 <Context path="" docBase="/application/tomcat/webapps/memtest" debug="0" reloadable="false" crossContext="true"/>
5 <Context path="/40team" docBase="/application/tomcat/webapps/memtest" debug="0" reloadable="false" crossContext="true"/>

重启服务

 1 /application/tomcat/bin/shutdown.sh 2 /application/tomcat/bin/startup.sh 

测试

http://10.0.0.17:8080/meminfo.jsp

http://10.0.0.17:8080/40team/meminfo.jsp

4.5 搭建Jpress->java版本的wordpress

4.5.1 准备环境

jpress官网:http://jpress.io

下载地址:https://github.com/JpressProjects/jpres

4.5.2 安装配置数据库

 1 yum -y install mariadb-server 2 systemctl start mariadb.service 

1 mysql
2 create database jpress DEFAULT CHARACTER SET utf8;
3 grant all on jpress.* to jpress@'localhost' identified by '123456';
4 exit

4.5.3 jpress站点上线

 1 cd /application/tomcat/webapps 2 上传jpress-web-newest.war 

4.5.4 web界面操作

http://10.0.0.17:8080/jpress-web-newest/

http://10.0.0.17:8080/jpress-web-newest/admin   #后台

4.5.5 重启服务

 1 /application/tomcat/bin/shutdown.sh 2 /application/tomcat/bin/startup.sh 

 企业级应用TOMCAT
第1章 Tomcat
第2章 Tomcat安装
 
第3章 Tomcat在CentOS7启动慢
第4章 通过web管理Tomcat
第5章 Tomcat多实例及反向代理
第6章 Tomcat监控
第七章 Tomcat性能优化

企业级应用TOMCAT
第1章 Tomcat
第2章 Tomcat安装
 
第3章 Tomcat在CentOS7启动慢
第4章 通过web管理Tomcat
第5章 Tomcat多实例及反向代理
第6章 Tomcat监控
第七章 Tomcat性能优化

企业级应用TOMCAT
第1章 Tomcat
第2章 Tomcat安装
 
第3章 Tomcat在CentOS7启动慢
第4章 通过web管理Tomcat
第5章 Tomcat多实例及反向代理
第6章 Tomcat监控
第七章 Tomcat性能优化

第5章 Tomcat多实例及反向代理

5.1 多实例部署

多虚拟主机:nginx,多个server标签(域名,ip,端口) 进程数量固定master+worker

多实例(多进程):tomcat,同一个进程启动多次,分为两种情况

注意:tomcat会尽可能使用我们的系统资源但会造成资源侵占(适用于资源多的情况)

5.1.1 复制Tomcat目录

1 cd /application/tools/
2 tar xf apache-tomcat-8.0.27.tar.gz
3 
4 cp -a apache-tomcat-8.0.27 tomcat8_1
5 cp -a apache-tomcat-8.0.27 tomcat8_2   #视系统资源而定

5.1.2 修改配置文件

1 sed -i 's#8005#8011#;s#8080#8081#' tomcat8_1/conf/server.xml
2 sed -i 's#8005#8012#;s#8080#8082#' tomcat8_2/conf/server.xml

5.1.3 修改存放目录并启动

1 cp -a tomcat8_1 tomcat8_2 /application/
2 for i in {1..2};do /application/tomcat8_$i/bin/startup.sh;done
3 netstat -lntup |grep java

5.1.4 web网页测试

http://10.0.0.17:8081/

http://10.0.0.17:8082/

5.2 反向代理服务配置

说明:在配置反向代理时,无需在意后端是什么服务,只需支持HTTP协议且知道其IP地址即可

5.2.1 lb01服务器端配置(centos6) 

 1 mv /application/nginx/conf/nginx.conf{,.ori} 2 egrep -v '#|^$' /application/nginx/conf/nginx.conf.default >/application/nginx/conf/nginx.conf 

5.2.2 修改nginx的配置文件

 1 [root@lb01 ~]# vim /application/nginx/conf/nginx.conf
 2 worker_processes  1;
 3 events {
 4     worker_connections  1024;
 5 }
 6 http {
 7     include       mime.types;
 8     default_type  application/octet-stream;
 9     sendfile        on;
10     keepalive_timeout  65;
11  upstream web_pools {
12         server 10.0.0.17:8081;
13         server 10.0.0.17:8082;
14     }
15     server {
16         listen       80;
17         server_name  localhost;
18         location / {
19              root   html;
20              index  index.jsp index.html index.htm;
21              proxy_pass http://web_pools;
22         }
23         error_page   500 502 503 504  /50x.html;
24         location = /50x.html {
25             root   html;
26         }
27     }
28 }

5.2.3 重启nginx服务并测试

 1 /application/nginx/sbin/nginx -s stop 2 /application/nginx/sbin/nginx 

1 [root@lb01 ~]# curl -s 10.0.0.5|tail -1
2 8081
3 [root@lb01 ~]# curl -s 10.0.0.5|tail -1
4 8082

第6章 Tomcat监控

6.1 tomcat远程监控

6.1.1  修改配置文件

1 vim /application/tomcat8_1/bin/catalina.sh +97
2 
3 CATALINA_OPTS="$CATALINA OPTS   #置于所有执行程序之前
4 -Dcom.sun.management.jmxremote        #开启远程监控命令的参数
5 -Dcom.sun.management.jmxremote.port=12345        #指定端口号为12345
6 -Dcom.sun.management.jmxremote.authenticate=false   #指定认证方式即无需认证
7 -Dcom.sun.management.jmxremote.ssl=false          #无需加密连接
8 -Djava.rmi.server.hostname=10.0.0.17"               #配置本机主机IP

6.1.2  解析主机名(必须步骤,否则报错)

 1 echo "10.0.0.17 web03" >>/etc/hosts 

6.1.3  重启服务

 1 /application/tomcat8_1/bin/shutdown.sh 2 /application/tomcat8_1/bin/startup.sh 

6.2 zabbix监控tomcat(前提:java能够被远程监控)

6.2.1 安装zabbix-java-gateway(java程序),也需要jdk(openjdk)

 1 yum install -y zabbix-java-gateway 

注意:zabbix server默认未开启java监控功能,由于监控tomcat非必须的,故需另配server开启功能

6.2.2 配置zabbix server(m01端)

1 sed -i -e '220a JavaGateway=127.0.0.1' -e '236a StartJavaPollers=5' /etc/zabbix/zabbix_server.conf
2 egrep -n '^J|^St' /etc/zabbix/zabbix_server.conf

6.2.3 启动所有服务

 1 systemctl start zabbix-java-gateway.service 2 systemctl restart zabbix-server.service 

6.2.4 web界面监控

01.添加新主机

 企业级应用TOMCAT
第1章 Tomcat
第2章 Tomcat安装
 
第3章 Tomcat在CentOS7启动慢
第4章 通过web管理Tomcat
第5章 Tomcat多实例及反向代理
第6章 Tomcat监控
第七章 Tomcat性能优化

02.关联模板

 企业级应用TOMCAT
第1章 Tomcat
第2章 Tomcat安装
 
第3章 Tomcat在CentOS7启动慢
第4章 通过web管理Tomcat
第5章 Tomcat多实例及反向代理
第6章 Tomcat监控
第七章 Tomcat性能优化

03.验证结果

变绿即为配置正确

6.3排除tomcat故障步骤

a. 查看catalina.out

b. 使用sh show-busy-java-threads.sh脚本进行检测

第七章 Tomcat性能优化

tomcat性能取决于 内存大小

上策:优化代码

中策:jvm优化机制 垃圾回收机制 把不需要的内存回收

          优化jvm--优化垃圾回收策略

优化catalina.sh配置文件,在catalina.sh配置文件中添加以下代码

1 JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms800m -Xmx800m -XX:NewSize=400m -XX:MaxNewSize=400m -XX:PermSize=400m -XX:MaxPermSize=400m"   #tomcat分配1G内存模板
2 
3 su -c '/home/tomcat/tomcat8_1/bin/shutdown.sh' tomcat   #重启服务
4 su -c '/home/tomcat/tomcat8_1/bin/startup.sh' tomcat

下策:加足够大的内存

下下策:每天0点定时重启tomcat

此笔记是本人学习摘记整理而成,此为初稿(尚有诸多不完善之处),原创作品允许转载,转载时请务必以超链接形式标明文章原始出处,作者信息和本声明,否则将追究法律责任。http://www.cnblogs.com/bananaaa/