Tomcat服务 JAVA web应用服务器
Tomcat是Apache软件基金会的jakarta项目中的一个核心项目,是一个开放源代码的Web应用服务器,属于轻量级的应用服务器,在各中小型系统或并发访问量不高的场景中应用非常普遍。具有处理HTML页面的功能,还是一个Servlet和JSP容器。
安装前:1、安装JAVA: yum install -y java-1.8.0-openjdk-devel.x86_64
java -version 验证查看是否安装成功JAVA
2、查看8080端口是否被占用:netstat -atunp |grep 8080
安装过程:
1、上传tomcat到服务器
2、解压tomcat软件到指定目录/usr/local/:
tar -zxvf apache-tomcat-8.5.77.tar.gz -C /usr/local/
3、设置软链接:
ln -s /usr/local/apache-tomcat-8.5.77 /usr/local/tomcat(用绝对路径)
4、调用批处理启动tomcat:
开启tomcat:./startup.sh
关闭tomcat:./shutdown.sh
5、查看端口和进程:lsof -i :8080
ps -ef |grep tomcat
tomcat服务默认端口是8080 ,保证安装前未被占用
6、访问tomcat页面:192.168.31.136:8080 显示tomcat测试页面
wen.war
Tomcat优化
1、Tomcat目录结构
/bin:脚本文件目录。(开启tomcat)
/lib:tomcat运行需要的库文件
/conf:存放配置文件,最重要的是server.xml。
/logs:存放日志文件。
/temp:Tomcat运行时候存放临时文件用的。
/webapps:web应用发布目录。
/work:存储JSP编译后的class文件的目录
2 配置文件
server.xml:主要的配置文件。
<server>
<service>
<connector port />
<Engine >
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<context path="" docbace="webapps">
<context />
</Host>
</Engine>
</Service>
</Server>
server:代表整个tomcat容器,是整个配置文件中唯一一个最外层的元素。
service:作用是在connector和Engine外面包了一层,把它们组装在一起,对外提供服务,一个service可以包含多个connector,但只能包括一个Engine,其中connector是从客户端接收请求,Engine是处理接收来的请求。
connector是接收连接请求,创建request和response对象用于和请求端交换数据。
engine:只有一个Engine组件,它是service中的请求处理组件。从一个或多个connector中接收请求并处理,然后完成后的响应返回级connector,最终传给客户端。
Host:是Engine的子容器。Engine组件中可以内嵌一个或多个Host组件,每个Host组件代表Engine中的一个虚拟主机。Host至少有一个,且其中一个的name必须与Engine组件的defaultHost属性匹配。
context:代表在特定的虚拟主机上运行的一个应用,是Host的子容器,一个context代表一个WEB应用,每个Host可以自定义多个context元素。
优化:服务器系统优化、系统内核优化、网络优化、服务自身优化(并发优化、底层优化、集群化)
/etc/security/limits.conf
3、网络优化:<Connector port="8899" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
compression="on" #开启压缩功能
nocompressionUserAgents="gozilla,traviata" #对配置的浏览器不启用压缩
/>
4、并发优化:(1)、连接数:maxConnetions(最大连接数)
(2)、处理线程:maxThreads(最大线程数)
(3)、等候对列:acceptCount(排队数量),指最大连接数已经满了的时候,允许多少请求排队
maxThreads="500" 默认是200,生产环境中可取500-800
minSpareThreads="100" 最小空闲线程数,默认是25
maxQueueSize="100" 线程满时,最大允许等待的队列数,超过此配置则拒绝连接请求
46、lsof:用于查看进程打开的文件或文件打开的进程,也可用于查看端口是否为打开状态。lsof命令是系统核心命令,只有root用户才可以执行。
lsof [选项]
-c<进程名> 列出指定进程名打开的文件
-g 列出GID号进程的详细信息
-i<条件> 列出符合条件的进程
-u 列出UID号进程的详细信息
-p<进程号> 列出指定进程号所打开的文件
COMMAND 进程的名称
PID 进程的标识符
TID 线程标识符
USER 进程的所有者
FD 文件描述符
TYPE 文件类型
DEVICE 磁盘设备名称
SIZE/OFF 文件大小
NODE 索引节点
NAME 进程打开的文件名称