1、Tomcat 简介

Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。

Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。

Tomcat:JAVA容器,WEB容器,WEB中间件

Tomcat,JBOSS,Weblogic —-收费。

apache和nginx 只能解析静态页面

web容器:uwsgi php tomcat ——-这些是解析动态页面的

一个tomcat默认并发是200(官方),可以修改,但实际用的时候也就150并发左右。

tomcat端口:本身自己的端口:8005.还有一个端口是和其他应用通信的端口:8009。给浏览器(客户端)访问页面用的端口是8080。

https端口:443

使用方案

方案一: Tomcat //单独使用 ——基本不用
方案二: Nginx+Tomcat //反向代理和负载均衡
方案三:
Nginx
|
+————————————————————————————+
| | | |
Tomcat1 Tomcat2 Tomcat3 nginx服务器 ——解析静态页面

建议使用Nginx和Tomcat配合,Nginx处理静态,Tomcat处理动态程序
方案三中后端Tomcat可以运行在单独的主机,也可以是同一台主机上的多实例 Tomcat官网: http://tomcat.apache.org

1、Tomcat好帮手—-JDK

JDK是 Java 语言的软件开发工具包,JDK是整个java开发的核心,JDK中包括完整的JRE(Java Runtime Environment),Java运行环境,包括了用于产品环境的各种库类,如基础类库rt.jar,以及给开发人员使用的补充库等。

JDK下载面页:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

2、安装Tomcat & JDK

安装时候选择tomcat软件版本要与程序开发使用的版本一致。jdk版本要进行与tomcat保持一致。

1、系统环境说明
image.png
2 、安装JDK
命令集
image.png
3、安装Tomcat
命令集:
image.png

2、Tomcat目录介绍

1、tomcat主目录介绍

image.png
2、webapps目录介绍
image.png
3、Tomcat配置文件目录介绍(conf)
image.png
4、Tomcat的管理
image.png
启动停止
image.png
注意:tomcat未启动的情况下使用shutdown脚本,会有大量的输出信息。
检查tomcat是否启动正常
image.png
端口:
8005:这个端口负责监听关闭Tomcat的请求 shutdown:向以上端口发送的关闭服务器的命令字符串。
8009: 与其他服务通信接口,接受其他服务器转发过来的请求
8080: 建立http连接用。可以修改
说明:所有与java相关的,服务启动都是java命名的进程
启动完成浏览器进行访问
image.png

查看日志

image.png

4、Tomcat主配置文件详解

1、server.xml组件类别

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

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

连接器组件:连接用户请求至tomcat,如connector。
image.png

2、server.xml配置文件注释

image.png
image.png

4、Connector主要参数说明

image.png
maxThreads=”500” ——默认是200
connectionTimeout=”20000” ————-连接超时时间。单位毫秒
redirectPort=”8443” />

5、host参数详解
  1. <Host name="localhost" appBase="webapps"<br /> unpackWARs="true" autoDeploy="true"><br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/25529370/1638880434201-2aa72685-90ac-436e-89c7-ea62bc120498.png#clientId=u519eec4f-ad7b-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=106&id=u2db7ca5b&margin=%5Bobject%20Object%5D&name=image.png&originHeight=211&originWidth=706&originalType=binary&ratio=1&rotation=0&showTitle=false&size=27924&status=done&style=none&taskId=u517cfa7d-9160-4925-bd27-20b004338fd&title=&width=353)

5、WEB站点部署

上线的代码有两种方式:
第一种方式是直接将程序目录放在webapps目录下面,这种方式大家已经明白了,就不多说了。
第二种方式是使用开发工具将程序打包成war包,然后上传到webapps目录下面。

1、使用war包部署web站点
image.png
image.png
浏览器访问:http://192.168.1.7:8080/jenkins
image.png

2、自定义默认网站目录

1、修改默认发布目录:
image.png
将原来的
image.png
修改为
image.png
image.png
浏览器访问:http://192.168.1.7:8080/jenkins
3、部署开源站点(jspgou商城)
第一:安装配置数据库
image.png
第二:jspgou商城上线
image.png
image.png
访问:http://192.168.1.7:8080/
image.png

4、Tomcat多实例配置

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

第一种:一台机器跑多个站点;

第二种:多个机器跑一个站点多个实例,配合负载均衡;

1、复制程序文件

image.png
启动tomcat多实例
image.png
检查端口查看是否启动:
image.png

2、在浏览器访问,进行测试

检查多实例的启动
http://192.168.50.114:8081/
image.png
http://192.168.50.114:8082/
image.png

7、tomcat反向代理集群

1、负载均衡器说明

关闭防火墙和selinux
image.png
2、配置负载均衡器
备份原配置文件并修改
image.png
启动nginx
image.png

3、在浏览器上进行访问测试

http://192.168.50.118/
image.png
http://192.168.50.118/
image.png

1、日志格式配置

image.png

2、JVM 参数优化

image.png

3、开启GC日志

image.png

4、开启JMX端口便于监控

image.png

5、取消JVM 的默认DNS缓存时间

不缓存DNS记录,避免DNS解析更改后要重启JVM虚拟机
image.png

8、JVM 运维实用排障工具

1、jps
image.png
Example
image.png

2、jstack

image.png
Example
image.png

9、Tomcat安全优化

1、telnet管理端口保护(强制)

image.png

2、 ajp连接端口保护(推荐)

image.png

3、降权启动(强制)

image.png
image.png

4、文件列表访问控制(强制)

image.png
image.png
5、起停脚本权限回收(推荐)
image.png

6、 访问日志格式规范(推荐)

conf/server.xml
image.png

10、Tomcat性能优化

上策:优化代码

该项需要开发经验足够丰富,对开发人员要求较高

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

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

优化catalina.sh配置文件。在catalina.sh配置文件中添加以下代码
image.png
下策:加足够大的内存
该项的资金投入较大
下下策:每天0**点定时重启tomcat**
使用较为广泛

Tomcat优化

image.png

image.png

image.png

image.png

image.png

一.Tomcat内存优化

image.png

二.Tomcat并发优化

image.png

image.png

一:Tomcat优化总结优化

1.采用动静分离 2.调优Tomcat线程池 3.调优Tomcat的连接器
4.通过修改Tomcat的运行模式 5.禁用AJP连接器