在 Debian 上配置 Tomcat 虚拟主机
一 准备与安装
sudo apt update && sudo apt install tomcat9sudo apt install tomcat9-adminsudo systemctl status tomcat9(应显示 active/running)二 配置虚拟主机
sudo nano /etc/tomcat9/server.xml<Engine name="Catalina" defaultHost="localhost"> 内新增多个 <Host> 元素,每个域名一个。示例:<Host name="www.example1.com" appBase="webapps/example1"
unpackWARs="true" autoDeploy="true">
<Alias>example1.com</Alias>
<Context path="" docBase="/var/www/example1" reloadable="true"/>
</Host>
<Host name="www.example2.com" appBase="webapps/example2"
unpackWARs="true" autoDeploy="true">
<Alias>example2.com</Alias>
<Context path="" docBase="/var/www/example2" reloadable="true"/>
</Host>
说明:
name 为主域名,Alias 可添加别名(如带/不带 www)。appBase 为该主机的应用基目录(相对 $CATALINA_BASE,即 /var/lib/tomcat9),可放 WAR 包自动部署。docBase 指向外部静态或 ROOT 应用目录;path="" 表示该 Host 的默认应用。reloadable="false" 以避免频繁类加载开销。三 准备应用目录与权限
sudo mkdir -p /var/www/example1 /var/www/example2
# 示例:放入简单 index.html 用于验证
echo "<h1>Hello from example1</h1>" | sudo tee /var/www/example1/index.html
echo "<h1>Hello from example2</h1>" | sudo tee /var/www/example2/index.html
sudo chown -R tomcat9:tomcat9 /var/www/example1 /var/www/example2appBase(如 /var/lib/tomcat9/webapps/example1/),Tomcat 会自动解压部署。四 网络与防火墙
sudo ufw allow 8080/tcpsudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reloadserver.xml 中调整 Connector 端口为 80/443,并为 443 配置 SSL(证书路径、协议等)。五 DNS 解析与验证
/etc/hosts 添加
127.0.0.1 www.example1.com www.example2.comsudo systemctl restart tomcat9http://www.example1.com:8080http://www.example2.com:8080
若分别看到不同的页面内容,即表示虚拟主机配置成功。六 常见问题与优化
tomcat9:tomcat9。AccessLogValve,便于区分站点。/var/log/tomcat9/catalina.out、/var/log/tomcat9/localhost*.log、/var/log/tomcat9/example_access_log*.txt(若已配置)。/etc/tomcat9/tomcat-users.xml 添加角色与用户(仅限受控网络)。reloadable="false"。