tomcat的介绍:
免费的、开放源代码的Web应用服务器(用java开发的)
Apache软件基金会(Apache Software Foundation)Jakarta项目中的一个核心项目
由Apache、Sun和一些公司及个人共同开发而成
深受Java爱好者的喜爱,并得到部分软件开发商的认可
目前比较流行的Web应用服务器
tomcat的核心组件结构:
①connector:主要用于接受客户的请求和回复响应,讲请求转发给后端的容器处理;
②container:负责对内处理逻辑请求;内部用四个容器组成:Engine、Host、Context和Mrapper
container的四个容器:
①engine(引擎):管理多个虚拟主机,一个 Service 最多只能有一个 Engine;
②host:一个虚拟主机,也可以叫站点,通过配置 ost 就可以添加站点;
③context:代表一个 Web 应用,包含多个 servlet 封装器;
④Wrapper: 装器,容器的最底层;负责对象实例的创建、执行和销毁功能。
Tomcat 请求过程:
1、用户在浏览器中输入网址,请求被发送到本机端口 8080,被在那里监听的 Connector 获得;
2、Connector 把该请求交给它所在的 Service 的 Engine(Container)来处理,并等待 Engine 的回应;
3、请求在 Engine、Host、Context 和 Wrapper 这四个容器之间层层调用,最后在 Servlet 中执行对应的业务逻辑、数据存储等。
4、执行完之后的请求响应在 Context、Host、Engine 容器之间层层返回,最后返回给 Connector,并通过 Connector 返回给客户端。
部署tomcat:
①前期准备工作:关闭非防火墙和selinux机制,安装包拖进来(jdk的包和appche-tomccat的包)
②安装jdk:rpm -ivh jdk-xxx-xxx-xxx.rpm
③设置jdk环境:vim /etc/profile.d/java.sh 最后source /etc/profile.d/java.sh
④安装启动tomcat:
cd /opt→ tar zxvf 包 →mv apache-tomcat-xxx /usr/local/tomcat
cd /usr/local/tomcat/bin →./startup.sh
netstat -antup | grep 8080查看端口是否在
⑤添加service服务怎么添加:vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=tomcat server
Wants=network-online.target
After=network.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/java/jdk1.8.0_201-amd64"
Environment="PATH=$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
Environment="CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar"
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
Restart=on-failure
[Install]WantedBy=multi-user.target
虚拟主机(添加两个host和context不同的域名):
1\tomcat的主配置文件是vim /usr/local/tomcat/conf/server.xml
2\在165行添加:
<Host name="www.kgc.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/kgc(这里是根目录!!!)" path="" reloadable="true" />
</Host>
3\在webapps目录中创建kgc目录里面添加文件(格式为jsp结尾的文件)
4\改完后cd /usr/local/tomcat/bin →./startup.sh
tomcat的优化:
①maxThreads:Tomcat可创建的最大的线程数,默认值是 200;
②minSpareThreads:最小空闲线程数,默认值是 10;
③maxSpareThreads:最大空闲线程数,默认值是-1(无限制);
④URIEncoding:URL 编码格式,一般采用UTF-8;
⑤enableLookups:不反查域名,设置为 false;
⑥connnectionTimeout:网络连接超时,单位:毫秒,默认 20000 毫秒;
⑦disableUploadTimeout:上传时是否使用超时机制,应设置为 true;
⑧connectionUploadTimeout:上传超时时间;
⑨acceptCount:连接等待,默认为 100;
⑩maxKeepAliveRequests:一个长连接的最大请求数,1,代表关闭长连接,-1,代表请求数无限制;
⑪compression:是否数据进行GZIP压缩;
⑫compressionMinSize:压缩响应的最小值,默认2048;
⑬compressableMimeType:压缩类型;
⑭noCompressionUserAgents="gozilla, traviata":哪些浏览器不启用压缩。
Tomcat多实例部署:
①mkdir /usr/local/tomcat→ cp -a /tomcat1 /tomcat2
②配置 tomcat 环境变量vim /etc/profile.d/tomcat.sh 最后source /etc/profile.d/tomcat.sh
③修改tomcat2的conf(因为端口不能同时使用相同的):vim /usr/local/tomcat/tomcat2/conf/server.xml
④修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量
vim /usr/local/tomcat/tomcat1/bin/startup.sh
vim /usr/local/tomcat/tomcat1/bin/shutdown.sh
vim /usr/local/tomcat/tomcat2/bin/startup.sh
vim /usr/local/tomcat/tomcat2/bin/shutdown.sh
⑤启动各 tomcat 中的 /bin/startup.sh
/usr/local/tomcat/tomcat1/bin/startup.sh
/usr/local/tomcat/tomcat2/bin/startup.sh
⑥netstat -natp | grep java
如果出来这张图片就对了!!
测试网页: