一、tomcat-收尾
1.1 tomcat server.xml
- tomcat端口 8080,8443,8005
- shutdown端口
server 8005 端口
connector 8080
connector 8443
hosts虚拟机主机部分
connector 8080
connector 8443
hosts虚拟机主机部分
1.2 多虚拟主机
- 虚拟主机就是1个站点
- 类似于nginx的server区域

1.3 tomcat多实例
- 服务器资源过剩然后解决?
- 降低配置
- 使用虚拟化(创建虚拟机)
- 服务的多实例(二进制安装,编译安装,容器运行docker)
- 多实例:128tb内存 nvme ssd 8tb*10 部署nginx
- 充分利用资源,使用多实例(tomcat,mysql多实例)二进制安装
- 多实例:在同1台机器运行多个相同的服务,充分利用资源
- 多实例软件编译安装或二进制安装或docker部署
- 注意事项:
- 路径不同/app/tools/tomcat /app/tools/tomcat8081 /app/tools/tomcat8082
- 端口不同:8080,8005,8009(ajp与apache连接,注释)
- 不同启动命令


1.4 tomcat管理端
- 生产环境禁止开启

二、 服务优化-Tomcat(java jvm)
2.1 性能优化
- 线程数量:server.xml中 connector 8080部分添加 maxthread
- jvm内存大小优化控制 catalina.sh中添加JAVA_OPTS=“-Xms1024m-Xmx1024m”
- oom自动dump jmap导出jvm
- gc日志
2.1.1 io模型优化server.xml
- 类似于nginx同步,异步模型
- 决定了tomcat如何处理数据
| io模型 | 说明 |
|---|---|
| BIO | Blocked IO,阻塞,同步模型,tomcat7及之前版本默认是BIO |
| NIO(NIO1 NIO2) | New IO,非阻塞,异步模型.tomcat8开始默认就是nio |
| APR | 应对高并发场景 |
应用建议:
tomcat设置为nio2模型
Connector port=”8080″
protocal=”org.apache.coyote.http11.Http11Nio2Protocol”
Connector port=”8080″
protocal=”org.apache.coyote.http11.Http11Nio2Protocol”
- 看日志catalina.out (截图中 http-ni2-8080 表示配置完成)
设置apr模型:
安装依赖apr-devel tomcat-native
protocal=”org.apache/coyote.http11Aprotocol”
2.1.2 tomcat java线程数
- server.xml 8080部分

2.1.3 DNS,压缩

2.2 JVM优化
- 通用的优化
- tomcat
catalina.sh文件中的内容
- 设置jvm内存大小
- 配置gc日志(垃圾回收)
- 配置自动dump功能
- 配置JVM内存大小

- 配置GC日志

- 配置自动DUMP功能(jvm发生异常,自动导出jvm内存镜像)

- 手动导出JVM

- 汇总:

2.3 tomcat开启远程监控功能
- 先理解作用,后面zabbix监控使用
- 监控软件zabbix,需要获取到jvm数据信息,做监控(tomcat(war),jar)
- 需要tomcat或jar包开启远程监控功能 jmxremote
2.4 https但tomcat
- 未来推荐在nginx(web,lb)中配置https
- 申请httos证书,下载不是nginx格式,下载tomcat格式
- 证书文件2个内容:
- 证书文件.pfx结尾
- 密码文件(存放的是密码)
- 开启8443端口
- keystoreFile=”/app/tools/tomcat/cert/ssl.oldboylinux.cn.pfx”
- keystorePass=”3kw46im6″密码文件的内容,密码写在这里

