温馨提示×

debian怎么配tomcat域

小樊
41
2026-09-30 14:59:38
栏目: 智能运维

在 Debian 上配置 Tomcat 虚拟主机(域名 / 域),通常指让 Tomcat 通过 域名访问某个 Web 应用。下面按常见场景说明。


一、前提条件

  1. 已安装 Tomcat(如 tomcat9 / tomcat10)
  2. 已解析域名(如 www.example.com → 服务器 IP)
  3. 知道 Tomcat 安装目录(Debian 通常是):
    • /var/lib/tomcat9/
    • /etc/tomcat9/

二、配置 Tomcat 域名(Host)

1. 编辑 Tomcat 配置文件

sudo nano /etc/tomcat9/server.xml

找到 <Engine> 段,默认有:

<Host name="localhost" appBase="webapps" ...>
</Host>

2. 添加域名 Host

在 </Engine> 前添加:

<Host name="www.example.com" appBase="webapps"
      unpackWARs="true" autoDeploy="true">

    <Context path="" docBase="/var/lib/tomcat9/webapps/example" />
    <Valve className="org.apache.catalina.valves.AccessLogValve"
           directory="logs"
           prefix="example_access_log"
           suffix=".txt"
           pattern="%h %l %u %t "%r" %s %b" />
</Host>

说明:

  • name:你的域名
  • docBase:Web 应用目录
  • path="":域名直接访问根路径

三、部署应用

将应用放到:

/var/lib/tomcat9/webapps/example

或上传 example.war 到:

/var/lib/tomcat9/webapps/

四、重启 Tomcat

sudo systemctl restart tomcat9

测试:

curl http://www.example.com:8080

五、如想用 80 端口(推荐)

方案 1:Nginx 反向代理(最常用)

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

    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}
sudo systemctl restart nginx

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

修改 server.xml:

<Connector port="80" protocol="HTTP/1.1" />

六、多域名示例

<Host name="a.com" appBase="webapps/a" />
<Host name="b.com" appBase="webapps/b" />

七、常见问题

  • 404:检查 docBase 路径
  • 域名无效:检查 DNS 解析
  • 权限问题:
sudo chown -R tomcat:tomcat /var/lib/tomcat9/webapps/example

如果你是指:

  • ✅ Tomcat 单节点多域名
  • ✅ Tomcat + SSL(HTTPS)
  • ✅ Tomcat 集群 / 负载均衡

可以告诉我具体需求,我给你更精确的配置。

0 踩