# 查看系统版本
cat /etc/os-release
uname -r
# 检查Java是否安装
java -version
# 方法1:使用yum安装OpenJDK
sudo yum update
sudo yum install java-1.8.0-openjdk-devel
# 方法2:手动安装Oracle JDK
# 下载JDK(从Oracle官网)
wget https://download.oracle.com/otn-pub/java/jdk/8u281-b09/89d678f2be164786b292527658ca1605/jdk-8u281-linux-x64.tar.gz
# 解压
tar -zxvf jdk-8u281-linux-x64.tar.gz -C /usr/local/
# 配置环境变量
sudo vi /etc/profile
在/etc/profile末尾添加:
export JAVA_HOME=/usr/local/jdk1.8.0_281
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
使配置生效:
source /etc/profile
java -version
sudo apt update
sudo apt install openjdk-8-jdk
java -version
# 进入opt目录
cd /opt
# 下载Tomcat 9(可根据需要选择版本)
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.54/bin/apache-tomcat-9.0.54.tar.gz
# 或者使用更快的镜像
wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.54/bin/apache-tomcat-9.0.54.tar.gz
# 解压
tar -zxvf apache-tomcat-9.0.54.tar.gz
# 重命名目录(可选)
mv apache-tomcat-9.0.54 tomcat9
# 创建tomcat组
sudo groupadd tomcat
# 创建tomcat用户
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat9 tomcat
# 设置目录权限
sudo chown -R tomcat:tomcat /opt/tomcat9
sudo chmod +x /opt/tomcat9/bin/*.sh
sudo vi /etc/profile.d/tomcat.sh
添加以下内容:
export CATALINA_HOME=/opt/tomcat9
export PATH=$CATALINA_HOME/bin:$PATH
使配置生效:
source /etc/profile.d/tomcat.sh
# 编辑server.xml
sudo vi /opt/tomcat9/conf/server.xml
修改连接器配置(可选):
<!-- 修改端口号 -->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxThreads="200"
minSpareThreads="10"
maxPostSize="52428800" />
<!-- 启用AJP连接器(可选) -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
sudo vi /opt/tomcat9/conf/tomcat-users.xml
在</tomcat-users>前添加:
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<user username="admin" password="your_secure_password"
roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui"/>
# 允许远程访问管理界面
sudo vi /opt/tomcat9/webapps/manager/META-INF/context.xml
注释掉或修改IP限制:
<!-- 注释掉Valve配置 -->
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
sudo vi /etc/systemd/system/tomcat.service
添加以下内容:
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/local/jdk1.8.0_281
Environment=CATALINA_PID=/opt/tomcat9/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat9
Environment=CATALINA_BASE=/opt/tomcat9
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat9/bin/startup.sh
ExecStop=/opt/tomcat9/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
# 重新加载systemd配置
sudo systemctl daemon-reload
# 启动Tomcat
sudo systemctl start tomcat
# 设置开机启动
sudo systemctl enable tomcat
# 查看状态
sudo systemctl status tomcat
# 停止Tomcat
sudo systemctl stop tomcat
# 重启Tomcat
sudo systemctl restart tomcat
# 查看日志
sudo journalctl -f -u tomcat
# 或直接查看日志文件
tail -f /opt/tomcat9/logs/catalina.out
# 上传WAR包到服务器
scp your-project.war user@server_ip:/tmp/
# 复制到webapps目录
sudo cp /tmp/your-project.war /opt/tomcat9/webapps/
# Tomcat会自动解压并部署
# 重启Tomcat使配置生效
sudo systemctl restart tomcat
方式2:修改server.xml配置
# 编辑server.xml
sudo vi /opt/tomcat9/conf/server.xml
添加Context配置:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<!-- 添加项目配置 -->
<Context path="/yourproject" docBase="/opt/tomcat9/webapps/your-project.war" reloadable="true" />
</Host>
方式3:使用独立配置文件
# 在conf/Catalina/localhost/下创建xml文件
sudo vi /opt/tomcat9/conf/Catalina/localhost/yourproject.xml
添加内容:
<?xml version="1.0" encoding="UTF-8"?>
<Context
docBase="/opt/tomcat9/webapps/your-project.war"
reloadable="true"
crossContext="true">
</Context>
# 将项目文件夹上传到服务器
scp -r your-project user@server_ip:/tmp/
# 复制到webapps目录
sudo cp -r /tmp/your-project /opt/tomcat9/webapps/
# 设置权限
sudo chown -R tomcat:tomcat /opt/tomcat9/webapps/your-project
# 重启Tomcat
sudo systemctl restart tomcat
http://server_ip:8080/manager/html
输入配置的管理员账号密码
在"WAR file to deploy"部分上传WAR包
sudo vi /opt/tomcat9/conf/server.xml
添加Host配置:
<Engine name="Catalina" defaultHost="localhost">
<Host name="www.domain1.com" appBase="webapps/domain1"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="." reloadable="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="domain1_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
<Host name="www.domain2.com" appBase="webapps/domain2"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="." reloadable="true"/>
</Host>
</Engine>
# 创建虚拟主机目录
sudo mkdir -p /opt/tomcat9/webapps/domain1
sudo mkdir -p /opt/tomcat9/webapps/domain2
# 设置权限
sudo chown -R tomcat:tomcat /opt/tomcat9/webapps/domain*
# 创建证书目录
sudo mkdir /opt/tomcat9/ssl
cd /opt/tomcat9/ssl
# 生成证书
sudo keytool -genkeypair \
-alias tomcat \
-keyalg RSA \
-keysize 2048 \
-keystore keystore.jks \
-validity 3650 \
-dname "CN=yourdomain.com, OU=IT, O=Company, L=City, S=State, C=CN"
sudo vi /opt/tomcat9/conf/server.xml
取消注释并修改SSL连接器:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="/opt/tomcat9/ssl/keystore.jks"
certificateKeystorePassword="your_password"
type="RSA" />
</SSLHostConfig>
</Connector>
sudo vi /etc/systemd/system/tomcat.service
修改JVM参数:
Environment='CATALINA_OPTS=-Xms2G -Xmx4G -XX:+UseG1GC -XX:+DisableExplicitGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/tomcat9/logs/heapdump.hprof'
sudo vi /opt/tomcat9/conf/server.xml
优化连接器:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443"
maxThreads="500"
minSpareThreads="50"
acceptCount="200"
maxPostSize="52428800"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/json,application/javascript" />
# 删除默认应用(可选)
sudo rm -rf /opt/tomcat9/webapps/docs
sudo rm -rf /opt/tomcat9/webapps/examples
sudo rm -rf /opt/tomcat9/webapps/ROOT
sudo vi /opt/tomcat9/conf/server.xml
修改Server端口和关闭命令:
<Server port="8005" shutdown="SHUTDOWN_SECRET">
# 查看启动日志
tail -f /opt/tomcat9/logs/catalina.out
# 查看特定日期日志
tail -f /opt/tomcat9/logs/catalina.$(date +%Y-%m-%d).log
# 查看应用日志
tail -f /opt/tomcat9/logs/localhost.$(date +%Y-%m-%d).log
# 检查端口占用
sudo netstat -tlnp | grep :8080
# 检查防火墙
sudo firewall-cmd --list-all # CentOS
sudo ufw status # Ubuntu
# 修复权限问题
sudo chown -R tomcat:tomcat /opt/tomcat9
sudo chmod -R 755 /opt/tomcat9
# 备份Tomcat配置
tar -czf tomcat-backup-$(date +%Y%m%d).tar.gz \
/opt/tomcat9/conf \
/opt/tomcat9/webapps \
/opt/tomcat9/ssl
# 备份数据库和应用数据
mysqldump -u username -p database > backup.sql
tar -czf app-data-$(date +%Y%m%d).tar.gz /path/to/data
# 测试Tomcat是否运行
curl http://localhost:8080
# 测试应用是否部署
curl http://localhost:8080/your-project/
# 测试HTTPS(如配置)
curl -k https://localhost:8443
通过以上步骤,您应该能够在Linux系统上成功部署Tomcat服务器和Java Web项目。根据实际需求调整配置参数,并确保进行适当的安全配置。