温馨提示×

debian怎么配tomcat虚拟

小樊
35
2026-10-15 05:41:48
栏目: 云计算

在 Debian 上配置 Tomcat 虚拟主机(Virtual Host),通常是指让 一个 Tomcat 实例承载多个域名/站点。下面以 Debian + Tomcat 9 为例说明(Tomcat 8/10 也类似)。


一、前提条件

  1. 已安装 Tomcat(Debian 官方包或二进制包均可)
  2. 知道 Tomcat 配置文件位置
    • Debian 包安装:/etc/tomcat9/server.xml
    • 二进制安装:$CATALINA_HOME/conf/server.xml
  3. 有域名(如 a.example.com、b.example.com)

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

1. 编辑 server.xml

sudo nano /etc/tomcat9/server.xml

2. 在 <Engine> 标签内添加 <Host>

示例:两个虚拟主机

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

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

    <!-- 虚拟主机 A -->
    <Host name="a.example.com" appBase="/var/www/a"
          unpackWARs="true" autoDeploy="true">
        <Alias>www.a.example.com</Alias>
    </Host>

    <!-- 虚拟主机 B -->
    <Host name="b.example.com" appBase="/var/www/b"
          unpackWARs="true" autoDeploy="true">
    </Host>

</Engine>

说明:

  • name:域名
  • appBase:该虚拟主机的应用目录
  • Alias:附加域名

三、创建网站目录

sudo mkdir -p /var/www/a/ROOT
sudo mkdir -p /var/www/b/ROOT

放入测试页面:

echo "A Site" | sudo tee /var/www/a/ROOT/index.html
echo "B Site" | sudo tee /var/www/b/ROOT/index.html

四、权限设置(很重要)

如果是 Debian 包安装的 Tomcat:

sudo chown -R tomcat:tomcat /var/www/a /var/www/b
sudo chmod -R 755 /var/www/a /var/www/b

五、重启 Tomcat

sudo systemctl restart tomcat9

六、本地测试(可选)

修改本地 hosts 文件:

sudo nano /etc/hosts

添加:

127.0.0.1 a.example.com
127.0.0.1 b.example.com

访问:

http://a.example.com:8080
http://b.example.com:8080

七、使用 80 端口(生产推荐)

方案 1:Tomcat 直接监听 80(不推荐)

修改 server.xml 中 Connector 端口为 80(需 root)

方案 2:Nginx / Apache 反向代理(推荐)

示例 Nginx:

server {
    listen 80;
    server_name a.example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}

八、常见问题

✅ 404

  • appBase 目录不存在
  • 没有 ROOT 应用

✅ 无法访问

  • 防火墙未开放端口
  • hosts / DNS 未配置

✅ 多域名共用一个项目

  • 使用 <Alias>

如果你用的是 Tomcat 版本不同 或想 一个域名多个项目 / 多端口,可以告诉我,我可以给你更具体的配置。

0 踩