温馨提示×

如何配置debian上的tomcat

小樊
47
2026-10-15 05:35:49
栏目: 智能运维

下面给你一份在 Debian(10/11/12 均可参考)上配置 Tomcat的常用做法,从安装到基本安全配置,适合生产/测试环境。


一、安装方式选择

有两种常见方式:

  1. APT 安装(简单,版本可能旧)
  2. 官方二进制包安装(推荐,版本新、可控)

二、方式一:APT 安装(快速)

sudo apt update
sudo apt install tomcat9 -y

常用命令:

sudo systemctl start tomcat9
sudo systemctl enable tomcat9
sudo systemctl status tomcat9

配置文件位置:

  • /etc/tomcat9/
  • webapps:/var/lib/tomcat9/webapps/

⚠️ Debian 12 起可能默认是 tomcat10


三、方式二:官方二进制安装(推荐)

1. 安装 JDK

sudo apt install openjdk-17-jdk -y
java -version

2. 创建专用用户

sudo useradd -m -s /bin/bash tomcat

3. 下载 Tomcat

以 Tomcat 10 为例:

cd /opt
sudo wget https://downloads.apache.org/tomcat/tomcat-10/v10.1.20/bin/apache-tomcat-10.1.20.tar.gz
sudo tar -xzf apache-tomcat-10.1.20.tar.gz
sudo mv apache-tomcat-10.1.20 tomcat
sudo chown -R tomcat:tomcat /opt/tomcat

四、配置 systemd 服务

创建:

sudo nano /etc/systemd/system/tomcat.service

内容示例:

[Unit]
Description=Apache Tomcat
After=network.target

[Service]
Type=forking
User=tomcat
Group=tomcat

Environment=JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

Restart=on-failure

[Install]
WantedBy=multi-user.target

启用:

sudo systemctl daemon-reload
sudo systemctl start tomcat
sudo systemctl enable tomcat

五、基础配置

1. 修改端口(可选)

nano /opt/tomcat/conf/server.xml

默认:

<Connector port="8080" ... />

2. 开启 Manager 管理界面(谨慎)

编辑:

nano /opt/tomcat/conf/tomcat-users.xml

添加:

<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="强密码" roles="manager-gui,admin-gui"/>

⚠️ 生产环境建议:

  • 限制 IP
  • 或用 SSH 隧道访问

3. 防火墙

sudo ufw allow 8080

或仅本地:

sudo ufw deny 8080
ssh -L 8080:localhost:8080 user@server

六、部署应用

把 .war 文件放到:

/opt/tomcat/webapps/

自动解压部署。


七、常见问题

  • 启动慢:检查 /dev/random
  • 权限问题:确保 tomcat 用户拥有目录
  • Java 版本不匹配:Tomcat 10 需要 Java 11+

如果你告诉我:

  • Debian 版本
  • Tomcat 版本
  • 是否用于生产

我可以给你更精确的配置示例(含 Nginx 反向代理、HTTPS)。

0 踩