温馨提示×

Tomcat在Linux上的部署方法

小樊
47
2025-11-11 07:31:27
栏目: 智能运维

一、前置准备:安装Java环境
Tomcat是基于Java的Servlet容器,需先确保Linux系统安装JDK/JRE。通过java -version命令检查,若未安装,可用包管理器安装(如Ubuntu用sudo apt update && sudo apt install openjdk-11-jdk,CentOS用sudo yum install java-11-openjdk-devel)。安装后验证版本信息,确认Java环境就绪。

二、下载并解压Tomcat

  1. 从Apache Tomcat官网下载最新稳定版压缩包(如Tomcat 9),可使用wget命令(如wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.56/bin/apache-tomcat-9.0.56.tar.gz)。
  2. 解压到目标目录(推荐/opt/usr/local),如sudo tar -xvzf apache-tomcat-9.0.56.tar.gz -C /opt
  3. (可选)重命名解压后的目录便于管理,如sudo mv /opt/apache-tomcat-9.0.56 /opt/tomcat

三、配置环境变量(可选但推荐)
为方便使用Tomcat命令,可将bin目录添加到系统PATH。编辑~/.bashrc(当前用户)或/etc/profile(全局)文件,添加以下内容:

export CATALINA_HOME=/opt/tomcat  # Tomcat安装目录
export PATH=$PATH:$CATALINA_HOME/bin

保存后运行source ~/.bashrc(或source /etc/profile)使配置生效。

四、启动与停止Tomcat

  1. 启动Tomcat:进入bin目录,执行./startup.sh(或直接运行$CATALINA_HOME/bin/startup.sh)。默认监听8080端口,可通过http://服务器IP:8080访问欢迎页面。
  2. 停止Tomcat:执行./shutdown.sh(或$CATALINA_HOME/bin/shutdown.sh)。
  3. 验证状态:启动后可通过ps -ef | grep tomcat查看进程,或用curl http://localhost:8080测试本地访问。

五、配置防火墙(允许远程访问)
若需从外部访问Tomcat,需开放8080端口(或其他自定义端口):

  • Ubuntu(ufw)sudo ufw allow 8080/tcp,然后sudo ufw reload
  • CentOS(FirewallD)sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent(永久生效),sudo firewall-cmd --reload(刷新规则)。
  • 传统iptablessudo iptables -I INPUT -p tcp --dport 8080 -j ACCEPTsudo service iptables save(保存规则)。

六、部署Web应用
将Web应用的WAR文件(如myapp.war)复制到Tomcat的webapps目录(如/opt/tomcat/webapps),Tomcat会自动解压并部署。部署后可通过http://服务器IP:8080/myapp访问应用(myapp为WAR文件名去掉.war后缀)。

七、可选优化:创建Systemd服务(便于管理)
为将Tomcat设为系统服务(支持systemctl命令),创建服务文件/etc/systemd/system/tomcat.service,内容如下:

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking
Environment="JAVA_HOME=/usr/lib/jvm/default-java"  # Java路径(根据实际调整)
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"
Environment="JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat  # 建议创建专用用户(如tomcat),提升安全性
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

保存后执行以下命令启用并启动服务:

sudo systemctl daemon-reload
sudo systemctl start tomcat
sudo systemctl enable tomcat  # 开机自启

通过sudo systemctl status tomcat查看服务状态。

八、常见问题排查

  1. 端口冲突:若8080端口被占用,修改conf/server.xml中的<Connector port="8080">为其他端口(如8081),重启Tomcat。
  2. 权限问题:确保Tomcat目录及文件的所属用户正确(如sudo chown -R tomcat:tomcat /opt/tomcat),避免因权限不足导致无法启动。
  3. 内存不足:若启动时报内存溢出,调整catalina.sh中的JAVA_OPTS参数(如-Xms512m -Xmx1024m),增加JVM堆内存大小。

0