温馨提示×

Debian怎么配置Tomcat虚拟主机

小樊
41
2026-07-21 17:05:45
栏目: 云计算

在 Debian 上配置 Tomcat 虚拟主机(Virtual Host),一般指的是在 同一个 Tomcat 实例中配置多个域名/站点。下面以 Tomcat 9 + Debian 11/12 为例,按生产环境常用方式说明。


一、前提条件

  1. 已安装 Tomcat

    sudo apt update
    sudo apt install tomcat9 tomcat9-admin
    
  2. Tomcat 目录结构(默认)

    /var/lib/tomcat9/
    ├── conf/        # 配置文件
    ├── webapps/     # 默认应用目录
    ├── logs/
    └── work/
    
  3. 假设示例

    • 域名:www.example.com
    • 应用目录:/var/lib/tomcat9/example
    • 端口:8080(或反向代理 80)

二、配置 Tomcat 虚拟主机(核心步骤)

1️⃣ 修改 server.xml

编辑 Tomcat 配置文件:

sudo nano /var/lib/tomcat9/conf/server.xml

<Engine name="Catalina"> 内添加 <Host>

<Engine name="Catalina" defaultHost="localhost">

    <!-- 默认主机 -->
    <Host name="localhost" appBase="webapps"
          unpackWARs="true" autoDeploy="true">
    </Host>

    <!-- 新增虚拟主机 -->
    <Host name="www.example.com" appBase="/var/lib/tomcat9/example"
          unpackWARs="true" autoDeploy="true">
        <Alias>example.com</Alias>
    </Host>

</Engine>

✅ 说明:

  • name:域名
  • appBase:该虚拟主机的应用目录
  • Alias:可配置多个域名

2️⃣ 创建虚拟主机目录

sudo mkdir -p /var/lib/tomcat9/example/ROOT

部署应用:

sudo cp yourapp.war /var/lib/tomcat9/example/ROOT.war

或直接放文件:

sudo cp -r yourproject/* /var/lib/tomcat9/example/ROOT/

3️⃣ 设置权限

sudo chown -R tomcat:tomcat /var/lib/tomcat9/example
sudo chmod -R 755 /var/lib/tomcat9/example

4️⃣ 重启 Tomcat

sudo systemctl restart tomcat9

三、配置 DNS / hosts(测试)

本地测试

sudo nano /etc/hosts

添加:

127.0.0.1 www.example.com

浏览器访问:

http://www.example.com:8080

四、使用 80 端口(推荐方式)

Tomcat 不建议直接监听 80,推荐用 Nginx / Apache 反向代理

示例:Nginx 反向代理

sudo apt install nginx
server {
    listen 80;
    server_name www.example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
sudo systemctl restart nginx

五、配置默认虚拟主机(可选)

如果你希望 某个域名作为默认访问站点

<Engine name="Catalina" defaultHost="www.example.com">

六、常见问题排查

❌ 403 / 404

  • appBase 路径错误
  • 没有 ROOT 目录
  • 权限不足

❌ 域名不生效

  • server.xml 未重启
  • DNS 未解析
  • Host name 写错

七、总结(最简流程)

1. 修改 server.xml 添加 <Host>
2. 创建 appBase 目录
3. 部署应用
4. 设置权限
5. 重启 Tomcat
6. (推荐)Nginx 反向代理

如果你需要:

  • Tomcat 8 / 10
  • 多端口虚拟主机
  • HTTPS / SSL
  • 与 Apache + mod_jk

可以直接告诉我你的具体环境。

0