在 Debian 上配置 Tomcat 虚拟主机(Virtual Host),一般指的是在 同一个 Tomcat 实例中配置多个域名/站点。下面以 Tomcat 9 + Debian 11/12 为例,按生产环境常用方式说明。
已安装 Tomcat
sudo apt update
sudo apt install tomcat9 tomcat9-admin
Tomcat 目录结构(默认)
/var/lib/tomcat9/
├── conf/ # 配置文件
├── webapps/ # 默认应用目录
├── logs/
└── work/
假设示例
www.example.com/var/lib/tomcat9/example8080(或反向代理 80)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:可配置多个域名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/
sudo chown -R tomcat:tomcat /var/lib/tomcat9/example
sudo chmod -R 755 /var/lib/tomcat9/example
sudo systemctl restart tomcat9
sudo nano /etc/hosts
添加:
127.0.0.1 www.example.com
浏览器访问:
http://www.example.com:8080
Tomcat 不建议直接监听 80,推荐用 Nginx / Apache 反向代理。
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">
appBase 路径错误ROOT 目录server.xml 未重启Host name 写错1. 修改 server.xml 添加 <Host>
2. 创建 appBase 目录
3. 部署应用
4. 设置权限
5. 重启 Tomcat
6. (推荐)Nginx 反向代理
如果你需要:
可以直接告诉我你的具体环境。