Tomcat 服务器是一个免费的开放源代码的 web 应用服务器
Web 容器
完成 Web 服务器的功能
Servlet 容器
JSP 容器
在部署 Tomcat 之前须安装好 jdk,因为 jdk 是 Tomcat 运行的必要环境
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
cd /opt
# 查询软件包的内容
rpm -qpl jdk-8u201-linux-x64.rpm
# 安装软件包
rpm -ivh jdk-8u201-linux-x64.rpm
# 查看信息
java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
# =号后的.千万不能省略
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
public class Cc {
public static void main(String[] args){
System.out.println("Hello cc!");
}
}
cd /opt
# 解压
tar zxvf apache-tomcat-9.0.16.tar.gz
# 移动
mv apache-tomcat-9.0.16 /usr/local/tomcat
后台启动
/usr/local/tomcat/bin/startup.sh
或
/usr/local/tomcat/bin/startup.sh start
# 查看端口号
netstat -natp | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 21069/java
前台启动
/usr/local/tomcat/bin/catalina.sh run
tcp6 0 0 :::8080 :::* LISTEN 21069/java
关闭
/usr/local/tomcat/bin/shutdown.sh
测试
第一次启动查看日志会发现 Tomcat 启动很慢,默认情况下可能会需要几十秒,可以修改jdk参数进行改
# 修改117行内容
117 securerandom.source=file:/dev/urandom
/dev/urandom 是 /dev/random 的非阻塞版本,当熵池中没可取的随机数时,读取 /dev/urandom 设备仍然会返回一个随机数,只是该随机数的安全性不高,如果要求安全高请使用 /dev/random
重启测试
# 关闭
/usr/local/tomcat/bin/shutdown.sh
netstat -anpt | grep 8080
tcp6 0 0 ::1:57046 ::1:8080 TIME_WAIT -
# 打开
/usr/local/tomcat/bin/startup.sh
netstat -anpt | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 22180/java
/usr/local/tomcat/
当多个项目需要运行时,我们不能在一台服务器上运行多个Tomcat服务,这样会消耗太多的系统资源
此时,就需要使用到 Tomcat 虚拟主机。例如现在新增两个域名 www.cc.com 和 www.dd.com,希望通过这两个域名访问到不同的项目内容
mkdir /usr/local/tomcat/webapps/cc
echo "hello cc\!" > /usr/local/tomcat/webapps/cc/index.jsp
mkdir /usr/local/tomcat/webapps/dd
echo "hello dd\!" > /usr/local/tomcat/webapps/dd/index.jsp
166 <Host name="www.cc.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
167 <Context docBase="/usr/local/tomcat/webapps/cc" path="" reloadable="true" /> # 行尾加上/ 可以不需要另输入
169 </Host>
170
171 <Host name="www.dd.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
172 <Context docBase="/usr/local/tomcat/webapps/dd" path="" reloadable="true" /> # 行尾加上/ 可以不需要另输入
174 </Host>
名词解释
Tomcat默认安装下的缺省配置并不适合生产环境,它可能会频繁出现假死现象需要重启,只有通过不断压测优化才能让它最高效率稳定的运行
maxThreads
minSpareThreads
maxSpareThreads
URIEncoding
connnectionTimeout
enableLookups
disableUploadTimeout
connectionUploadTimeout
acceptCount
compression
compressionMinSize
compressableMimeType
noCompressionUserAgents="gozilla, traviata"
69 <Connector port="8080" protocol="HTTP/1.1"
70 connectionTimeout="20000"
71 redirectPort="8443"
# 新增内容
72 minSpareThreads="50"
73 enableLookups="false"
74 disableUploadTimeout="true"
75 acceptCount="300"
76 maxThreads="500"
77 processorCache="500"
78 URIEncoding="UTF-8"
79 compression="on"
80 compressionMinSize="2048"
81 compressableMimeType="text/html,text/xml,text/javascript,text /css,text/plain,image/gif,image /jpg,image/png"/>