在 Debian 上配置 Tomcat 通过代理(通常是 Nginx 或 Apache)访问,常见做法有两种:Nginx 反向代理 和 Apache + mod_jk / mod_proxy。下面给你最常用、最清晰的方案。
sudo apt update
sudo apt install tomcat9
Tomcat 默认端口:8080
启动:
sudo systemctl start tomcat9
sudo systemctl enable tomcat9
sudo apt install nginx
编辑站点配置:
sudo nano /etc/nginx/sites-available/tomcat
示例配置(将 80 端口代理到 Tomcat 8080):
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
启用配置:
sudo ln -s /etc/nginx/sites-available/tomcat /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
✅ 现在访问 http://example.com 就会走 Tomcat。
sudo apt install apache2
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo nano /etc/apache2/sites-available/tomcat.conf
<VirtualHost *:80>
ServerName example.com
ProxyRequests Off
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>
启用并重启:
sudo a2ensite tomcat.conf
sudo systemctl restart apache2
编辑:
sudo nano /etc/tomcat9/server.xml
将 Connector 改为只监听本机:
<Connector port="8080" address="127.0.0.1" ... />
certbotsudo apt install certbot python3-certbot-nginx
sudo certbot --nginx
| 方案 | 适用场景 |
|---|---|
| Nginx + Tomcat | 最简单、性能好 |
| Apache + mod_proxy | 已有 Apache |
| mod_jk | 老系统、集群 |
如果你是 内网 / 公网 / Docker / 集群 场景,可以告诉我,我可以给你更具体的配置。