CentOS7安装Tomcat8
Tomcat 是一个由Apache开发的开源Java Web应用服务器。
一、介绍及下载
1.1 版本支持
需要 JAVA环境,自然涉及到对应的版本。版本选择?
目前(2026-01-01)还支持的Tomcat版本。
| Apache Tomcat Version |
Latest Released Version |
Supported Java Versions |
| 11.0.x |
11.0.15 |
17 and later |
| 10.1.x |
10.1.50 |
11 and later |
| 9.0.x |
9.0.113 |
8 and later |
已经不支持Tomcat版本
| Apache Tomcat Version |
Final Released Version |
Supported Java Versions |
EOL Date |
| 10.0.x (superseded) |
10.0.27 (superseded) |
8 and later |
2022-10-31 |
| 8.5.x (archived) |
8.5.100 (archived) |
7 and later |
2024-03-31 |
| 8.0.x (superseded) |
8.0.53 (superseded) |
7 and later |
2018-06-30 |
| 7.0.x (archived) |
7.0.109 (archived) |
6 and later (7 and later for WebSocket) |
2021-03-31 |
| 6.0.x (archived) |
6.0.53 (archived) |
5 and later |
2016-12-31 |
| 5.5.x (archived) |
5.5.36 (archived) |
1.4 and later |
2012-09-31 |
| 4.1.x (archived) |
4.1.40 (archived) |
1.3 and later |
2009-06-25 |
| 3.3.x (archived) |
3.3.2 (archived) |
1.1 and later |
2004-03-09 |
1.2 下载
归档页
这里以最后的 8.5.100 为例。
1
| wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.100/bin/apache-tomcat-8.5.100.tar.gz
|
二、安装
2.1 安装JDK
CentOS7安装JDK8
1
| tar xf jdk-8u461-linux-x64.tar.gz -C /usr/local/
|
1
| ln -s /usr/local/jdk1.8.0_461/ /usr/local/java
|
1 2 3 4 5 6 7
| cat >> /etc/profile.d/jdk.sh <<-EOF #!/bin/bash # 指定java安装目录 export JAVA_HOME=/usr/local/java # 用于指定java系统查找命令的路径 export PATH=\$JAVA_HOME/bin:\$PATH EOF
|
1
| source /etc/profile.d/jdk.sh
|
2.2 安装tomcat8
- 解压
1
| tar xf apache-tomcat-8.5.100.tar.gz -C /usr/local
|
- 创建软链接
1
| ln -s /usr/local/apache-tomcat-8.5.100/ /usr/local/tomcat
|
- 设置环境变量
1 2 3 4 5
| cat >> /etc/profile.d/tomcat.sh <<-EOF #!/bin/bash export TOMCAT_HOME=/usr/local/tomcat export PATH=\$PATH:\$TOMCAT_HOME/bin:\$JAVA_HOME/bin EOF
|
- 刷新环境变量
1
| source /etc/profile.d/tomcat.sh
|
- 验证
三、使用
3.1 管理端
默认打不开,需要修改配置文件
- 修改配置文件
1
| vim /usr/local/tomcat/conf/tomcat-users.xml
|
1 2 3 4 5 6 7 8 9
| <?xml version="1.0" encoding="UTF-8"?> <tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" version="1.0"> <role rolename="manager-gui"/> <role rolename="admin-gui"/> <user username="tomcat" password="1" roles="admin-gui,manager-gui"/> </tomcat-users>
|
- 允许外部访问
1
| cd /usr/local/tomcat/webapps
|
1
| sed -i 's#127#\\d+#g' ./host-manager/META-INF/context.xml ./host-manager/WEB-INF/manager.xml ./manager/META-INF/context.xml
|
- 重启
1 2
| catalina.sh stop catalina.sh start
|
- 访问
http://192.168.10.101:8080
3.2 systemd 管理
1
| vim /etc/sysconfig/tomcat
|
1 2
| JAVA_HOME=/usr/local/java PATH=$JAVA_HOME/bin:/usr/bin:/usr/sbin
|
1
| vim /usr/lib/systemd/system/tomcat.service
|
1 2 3 4 5 6 7 8 9 10 11
| [Unit] Description=Tomcat java web container After=network.target [Service] Type=forking EnvironmentFile=/etc/sysconfig/tomcat ExecStart=/usr/local/tomcat/bin/startup.sh ExecStop=/usr/local/tomcat/bin/shutdown.sh ExecReload=/usr/local/tomcat/bin/shutdown.sh &&sleep 1 && /usr/local/tomcat/bin/startup.sh [Install] WantedBy=multi-user.target
|
1
| systemctl enable --now tomcat
|
3.3 服务端
1
| vim /usr/local/tomcat/conf/server.xml
|
主要定义端口,虚拟主机,日志等的一些参数。
默认的服务端配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| <?xml version="1.0" encoding="UTF-8"?> <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> <GlobalNamingResources> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> </GlobalNamingResources> <Service name="Catalina"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxParameterCount="1000" /> <Engine name="Catalina" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="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> </Engine> </Service> </Server>
|
对比ngx
| 对比项 |
tomcat |
nginx |
| 虚拟主机 |
Host |
server {} |
| 域名 |
name=”域名” |
server_name java.bravexist.cn; |
| 端口 |
Connector部分 port=”8080” |
listen 80; |
| 站点目录 |
appBase=”webapps” |
root /www/wwwroot/blog; |
| 自动解压 |
unpackWARs=”true” |
无 |
| 自动部署 |
autoDeploy=”true” |
无 |
| 日志目录 |
<Valve 部分 日志目录 directory=”logs” |
access_log /var/log/nginx/access.log main; |
| 日志名字 |
<Valve 部分前半部分prefix=”localhost_access_log” 后半部分suffix=”.txt” |
access_log /var/log/nginx/access.log main; |
| 日志格式 |
<Valve 部分pattern=”%h %l %u %t “%r” %s %b” |
log_format main …………….; |
日志格式
| 说明 |
tomcat |
nginx |
| 定义访问日志的格式 |
Host部分的pattern定义 |
http区域 log_format部分 |
| 客户端ip地址 |
%h |
$remote_addr |
| 访问的时间 |
%t |
$local_time |
| 请求起始行 |
%r |
$request |
| 状态码 |
%s |
$status |
| 大小 |
%b |
$body_bytes_sent |
| 从哪里跳转来的(用户如何访问网站) |
%{Referer}i |
$http_referer |
| 客户端类型,浏览器 |
%{User-Agent}i |
$http_user_agent |
| XFF头记录 |
%{X-Forwarded-For}i |
$http_x_forwarded_for |