CentOS7系统下 Tomcat 安装指南
一、Tomcat 介绍
Tomcat 是 Apache 基金会下的一个开源 Servlet 容器,用于运行 Java 编写的 Web 程序。相比 WebLogic、WebSphere 这类重量级应用服务器,Tomcat 更轻量、配置简单、上手快,是目前更为常用的 Java Web 容器之一。Tomcat 和 JDK 之间也存在明确的版本对应关系,并不是任意组合都能正常运行:
Tomcat 9.x:最低要求 JDK 8,是目前唯一还在支持 JDK 8 环境的主线版本,官方支持周期延长至 2027 年3月
Tomcat 10.1.x:最低要求 JDK 11,采用 Jakarta EE 9 规范
Tomcat 11.x:最低要求 JDK 17,采用 Jakarta EE 10/11 规范,是当前最新的主线版本
JDK 版本决定了 Tomcat 版本的选择上限,如果系统使用的是 JDK 8,那么就只能选择 Tomcat 9.x 系列;如果计划升级到 Tomcat 10/11,也必须先把 JDK 一并升级到 11 或 17 以上。因此在做选型时,要把 JDK 和 Tomcat 作为一个整体版本组合来考虑
二、Tomcat 安装部署
1、下载Tomcat
由于操作系统上JDK版本为8,所以这里下载的是Tomcat 9.x,官方下载地址是https://tomcat.apache.org/download-90.cgi
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.120/bin/apache-tomcat-9.0.120.tar.gz tar zxf apache-tomcat-9.0.120.tar.gz mv apache-tomcat-9.0.120 /usr/local/ ln -s /usr/local/apache-tomcat-9.0.120 /usr/local/tomcat
2、Tomcat目录结构说明

bin:存放启动脚本和相关java文件,其中 catalina.sh 用于启动/停止tomcat
conf:存放配置文件,server.xml 是主配置文件,tomcat-users.xml 用于配置管理账号
lib:库文件目录
logs:日志文件目录
temp:临时文件目录
work:程序工作目录
webapps:应用程序部署目录,webapps/ROOT 是默认站点的根目录
3、配置Tomcat环境变量
Tomcat 运行时需要检查 CATALINA_HOME 环境变量,需要提前好该变量才能通过脚本启动服务
cat > /etc/profile.d/tomcat.sh << 'EOF' export CATALINA_HOME=/usr/local/tomcat export PATH=$CATALINA_HOME/bin:$PATH EOF source /etc/profile.d/tomcat.sh
4、启动tomcat
通过 catalina.sh 脚本启动Tomcat服务,默认监听端口为8080。如果启动后发现端口没有监听,可以改用 catalina.sh run 前台运行,会在当前终端窗口打印出详细日志方便排查问题
/usr/local/tomcat/bin/catalina.sh start

5、验证
使用浏览器访问Tomcat,默认首页右侧可以看到 Server Status、Manager App、Host Manager 三个入口,但是此时还无法访问,还需要放行网络和配置账号才行

6、配置访问权限
由于 Tomcat 默认在 webapps/manager 和 webapps/host-manager 里配置了IP白名单限制,只允许本机(127.0.0.1)访问。所以Server Status、Manager App、Host Manager 等模块都是无法访问的,会提示403错误,这里需要修改配置文件放开IP
[root@v1 tomcat]# cat $CATALINA_HOME/webapps/manager/META-INF/context.xml <?xml version="1.0" encoding="UTF-8"?> <Context antiResourceLocking="false" privileged="true" > <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor" sameSiteCookies="strict" /> <Valve className="org.apache.catalina.valves.RemoteCIDRValve" allow="127.0.0.0/8,::1/128,0.0.0.0/0" /> <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/> </Context> [root@v1 tomcat]# cat $CATALINA_HOME/webapps/host-manager/META-INF/context.xml <?xml version="1.0" encoding="UTF-8"?> <Context antiResourceLocking="false" privileged="true" > <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor" sameSiteCookies="strict" /> <Valve className="org.apache.catalina.valves.RemoteCIDRValve" allow="127.0.0.0/8,::1/128,0.0.0.0/0" /> <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/> </Context>
重启服务
$CATALINA_HOME/bin/shutdown.sh $CATALINA_HOME/bin/startup.sh
7、配置管理账号
其实访问 Tomcat 首页并点击Server Status、Manager App、Host Manager 模块会弹出一个登录框,但是出于安全考虑,在完成安装后是没有进行任何用户配置的,也就是说此时没有用户可以登录进去,需要自行手动配置管理员账号
cat $CATALINA_HOME/conf/tomcat-users.xml <?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"> # 在</tomcat-users> 结束标签之前加入下面的信息 # manager-gui对应Manager App(含 Server Status);admin-gui 对应 Host Manager,两个都要授权给同一个用户,才能两个入口都能登录 <role rolename="manager-gui"/> <role rolename="admin-gui"/> <user username="admin" password="123456" roles="manager-gui,admin-gui"/> </tomcat-users>
重启服务
$CATALINA_HOME/bin/shutdown.sh $CATALINA_HOME/bin/startup.sh

8、部署应用程序
Tomcat整个服务正常后,后续只需要把Java程序的war包上传到webapps目录即可,Tomcat 会自动监控该目录,如果检测到新的war包就会自动解压部署,如这里上传了一个myapp.war的包
cp myapp.war $CATALINA_HOME/webapps/
几秒钟后 Tomcat 会自动解压出一个 ./myapp同名目录,可以通过 logs/catalina.out 观察部署过程,如果看到类似 Deployment of web application archive [.../myapp.war] has finished 就说明部署成功了,如果服务启动后出现各类错误也可以通过该日志进行排查
tail -f $CATALINA_HOME/logs/catalina.out
猜你喜欢
运维技术 CentOS7系统下 JAVA8 / JDK8 安装指南
一、Java版本与JDK介绍Java 根据应用领域不同,分为 Java SE、Java EE、Java ME 三类(早期也称 J2SE、J2EE、J2ME,Java 5 之后官方统一改用现名),三者区...
文章评论