Tomcat需要Java运行环境(JRE/JDK),推荐使用CentOS默认仓库的OpenJDK:
# 检查是否已安装Java
java -version
# 若未安装,执行以下命令安装OpenJDK 1.8(Tomcat 9兼容版本)
sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
# 验证安装
java -version # 应输出Java版本信息
wget命令下载:wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.56/bin/apache-tomcat-9.0.56.tar.gz
/opt目录(系统软件常用路径),并重命名为tomcat(简化后续操作):sudo tar -zxvf apache-tomcat-9.0.56.tar.gz -C /opt
sudo mv /opt/apache-tomcat-9.0.56 /opt/tomcat
为方便全局使用Tomcat命令(如startup.sh、shutdown.sh),配置CATALINA_HOME环境变量:
# 编辑系统级profile文件
sudo vim /etc/profile.d/tomcat.sh
# 添加以下内容(根据实际路径调整)
export CATALINA_HOME=/opt/tomcat
export PATH=$PATH:$CATALINA_HOME/bin
# 保存后使配置生效
source /etc/profile.d/tomcat.sh
sudo groupadd tomcat # 创建tomcat用户组
sudo useradd -M -s /bin/nologin -g tomcat -d /opt/tomcat tomcat # 创建用户并指定家目录
tomcat用户,确保其有操作权限:sudo chown -R tomcat:tomcat /opt/tomcat
sudo chmod +x /opt/tomcat/bin/*.sh # 赋予启动脚本可执行权限
sudo vim /etc/systemd/system/tomcat.service
添加以下内容(关键参数说明:CATALINA_OPTS设置JVM内存,JAVA_OPTS优化无头模式):[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk # Java路径(通过`java -XshowSettings:properties -version`确认)
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC' # JVM内存分配
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom' # 无GUI模式优化
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always # 失败时自动重启
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload # 重新加载systemd配置
sudo systemctl enable tomcat # 设置开机自启动
sudo systemctl start tomcat # 启动Tomcat服务
# 检查状态(应显示active(running))
sudo systemctl status tomcat
若系统启用了firewalld,需开放Tomcat默认的8080端口(HTTP):
# 开放8080端口(永久生效)
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
# 重新加载防火墙规则
sudo firewall-cmd --reload
# 验证端口是否开放
sudo firewall-cmd --zone=public --query-port=8080/tcp # 应返回yes
在浏览器中访问http://<服务器IP>:8080,若看到Tomcat的欢迎页面(包含“Apache Tomcat”字样),则说明配置成功。
将WAR文件复制到Tomcat的webapps目录,Tomcat会自动解压并部署:
# 示例:部署名为myapp.war的应用
cp /path/to/myapp.war /opt/tomcat/webapps/
# 访问路径:http://<服务器IP>:8080/myapp
编辑server.xml文件(位于/opt/tomcat/conf/),添加<Host>元素定义虚拟主机:
sudo vim /opt/tomcat/conf/server.xml
在<Engine>标签内添加以下内容(以example.com为例):
<Host name="example.com" appBase="webapps/example" unpackWARs="true" autoDeploy="true">
<Alias>www.example.com</Alias> <!-- 别名 -->
<Context path="" docBase="/opt/tomcat/webapps/example" reloadable="true"/> <!-- 应用上下文路径 -->
</Host>
注意:需将域名解析到服务器IP(DNS配置),并创建对应的应用目录:
sudo mkdir -p /opt/tomcat/webapps/example
sudo chown -R tomcat:tomcat /opt/tomcat/webapps/example
重启Tomcat使配置生效:
sudo systemctl restart tomcat
修改setenv.sh文件(位于/opt/tomcat/bin/,不存在则创建),自定义JVM内存大小(如增加堆内存):
sudo vim /opt/tomcat/bin/setenv.sh
添加以下内容:
export JAVA_OPTS="-Xms1024M -Xmx2048M -XX:MaxPermSize=512M"
保存后重启Tomcat生效。
以上步骤覆盖了Tomcat在CentOS上的核心配置,可根据实际需求扩展(如SSL配置、集群部署等)。