Tomcat概述
Tomcat介绍
免费的、开放源代码的Web应用服务器
Apache软件基金会(Apache Software Foundation)Jakarta项目中的一个核心项目
由Apache、Sun和一些公司及个人共同开发而成
深受Java爱好者的喜爱,并得到部分软件开发商的认可
目前比较流行的Web应用服务器
核心组件
1.web容器:完成web服务器的功能。
Tomcat请求的处理过程
1.用户在浏览器中输入网址,请求被发送到本机端口8080,被在那里监听的Connector获得;
2.Connector把该请求交给它所在的Service 的 Engine (Container)来处理,并等待Engine
的回应;
3.请求在Engine、Host、Context和 Wrapper 这四个容器之间层层调用,最后在Servlet 中执行对应的业务逻辑、数据存储等。
4.执行完之后的请求响应在Context、Host、Engine 容器之间层层返回,最后返回给Connector,并通过Connector返回给客户端。
Tomcat服务部署
安装Tomcat
1.下载安装jdk
安装Tomcat之前需要安装jdk:
首先下载jdk的rpm包,使用rpm -ivh rpm包名安装
2.安装 Tomcat 服务
[root@localhost ~]# tar zxvf apache-tomcat-9.0.8.tar.gz
[root@localhost ~]# mv apache-tomcat-9.0.8 /usr/local/tomcat
[root@localhost ~]# /usr/local/tomcat/bin/startup.sh
[root@localhost ~]# netstat -anpt | grep java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 9591/java
tcp6 0 0 :::8009 :::* LISTEN 9591/java
tcp6 0 0 :::8080 :::* LISTEN 9591/java
浏览器打开 http://192.168.10.101:8080 进行访问会出现 Tomcat 主页
Tomcat目录结构
[root@localhost ~]# ll /usr/local/tomcat/
总用量 92
drwxr-x---. 2 root root 4096 6月 11 08:04 bin
drwx------. 3 root root 254 6月 11 08:04 conf
drwxr-x---. 2 root root 4096 6月 11 08:04 lib
-rw-r-----. 1 root root 57092 4月 28 2018 LICENSE
drwxr-x---. 2 root root 197 6月 11 08:04 logs
-rw-r-----. 1 root root 1804 4月 28 2018 NOTICE
-rw-r-----. 1 root root 6852 4月 28 2018 RELEASE-NOTES
-rw-r-----. 1 root root 16246 4月 28 2018 RUNNING.txt
drwxr-x---. 2 root root 30 6月 11 08:04 temp
drwxr-x---. 7 root root 81 4月 28 2018 webapps
drwxr-x---. 3 root root 22 6月 11 08:04 work
bin 目录:用于存放启动和关闭 Tomcat 的脚本文件,比较常用的是 catalina.sh、startup.sh、shutdown.sh 三个文件。
conf 目录:用于存放 Tomcat 服务器的各种配置文件,比较常用的是 server.xml、context.xml、tomcat-users.xml、web.xml 四个文件。
lib 目录:用于存放 Tomcat 服务器的 jar 包,一般不作任何改动,除非连接第三方服务,比如 redis,那就需要添加相对应的 jar 包。
logs 目录:用于存放 Tomcat 日志。
temp 目录:用于存放 Tomcat 运行时产生的文件。webapps 目录:用于存放项目资源的目录。
work 目录:是 Tomcat 工作目录,一般清除 Tomcat 缓存的时候会使用到。
Tomcat 配置与优化
虚拟主机配置
创建 www 和 bbs 项目目录和文件
[root@localhost ~]# mkdir /usr/local/tomcat/webapps/www
[root@localhost ~]# echo "www.benet.com"> /usr/local/tomcat/webapps/www/index.jsp
[root@localhost ~]# mkdir /usr/local/tomcat/webapps/bbs
[root@localhost ~]# echo "bbs.benet.com"> /usr/local/tomcat/webapps/bbs/index.jsp
修改 Tomcat 主配置文件
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
…………
<Host name="www.test.com" appBase="/usr/local/tomcat/webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="/usr/local/tomcat/webapps/www" path="" reloadable="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
<Host name="bbs.test.com" appBase="/usr/local/tomcat/bbs"
unpackWARs="true" autoDeploy="true">
<Context docBase="/usr/local/tomcat/webapps/bbs" path="" reloadable="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
…………
[root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh
[root@localhost ~]# /usr/local/tomcat/bin/startup.sh
虚拟主机访问测试
在客户端的host中添加以下内容
192.168.10.101 www.benet.com bbs.bent.com
然后用客户端访问两个域名即可
Tomcat 优化
jmeter 压测工具
使用方法
bin文件夹下jmeter.bat文件是启动脚本
添加线程组(线程数4000,循环次数20)
添加http请求
添加监听器
配置完成后点击上方启动按钮
优化前测试
对Tomcat进行优化
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
minSpareThreads="50"
enableLookups="false"
disableUploadTimeout="true"
acceptCount="300"
maxThreads="500"
processorCache="500"
URIEncoding="UTF-8"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,tex t/plain,image/gif,image/jpg,image/png" />
[root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh
[root@localhost ~]# /usr/local/tomcat/bin/startup.sh