在 Debian 上“整合 Nginx + Tomcat”,通常是指 用 Nginx 做反向代理 / 负载均衡 / 静态资源服务器,Tomcat 负责 Java 应用。下面给你一套生产可用的标准做法(Debian 11/12 通用)。
客户端
|
Nginx (80 / 443)
| 反向代理
Tomcat (8080)
sudo apt update
sudo apt upgrade -y
sudo apt install nginx -y
sudo apt install tomcat10 tomcat10-admin -y
确认 Tomcat 运行:
systemctl status tomcat10
默认端口:8080
编辑:
sudo nano /etc/tomcat10/server.xml
确认 Connector 绑定在:
<Connector port="8080" address="127.0.0.1" ... />
重启:
sudo systemctl restart tomcat10
sudo nano /etc/nginx/sites-available/tomcat
示例配置(HTTP):
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;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|html)$ {
proxy_pass http://127.0.0.1:8080;
expires 30d;
}
}
sudo ln -s /etc/nginx/sites-available/tomcat /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
让 Nginx 直接处理静态文件,Tomcat 只跑接口:
location /static/ {
root /var/lib/tomcat10/webapps/ROOT;
expires 30d;
}
location / {
proxy_pass http://127.0.0.1:8080;
}
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com
Certbot 会自动修改 Nginx 配置。
如果你有多个 Tomcat:
upstream tomcat_cluster {
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
server {
location / {
proxy_pass http://tomcat_cluster;
}
}
Tomcat server.xml 加:
<Valve className="org.apache.catalina.valves.RemoteIpValve"
remoteIpHeader="X-Forwarded-For"
protocolHeader="X-Forwarded-Proto" />
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
✅ Debian 上 Nginx + Tomcat 整合核心就是:
如果你愿意,我可以: