在 Debian 上用 Tomcat 做转发(反向代理 / 请求转发),常见有几种方式,按使用场景给你说明:
适合:生产环境、HTTPS、负载均衡、静态资源
sudo apt update
sudo apt install nginx
编辑站点配置:
sudo nano /etc/nginx/sites-available/tomcat
示例(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;
}
}
启用配置:
sudo ln -s /etc/nginx/sites-available/tomcat /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
✅ 访问 http://example.com 即可转发到 Tomcat
适合:应用内部页面跳转
request.getRequestDispatcher("/target.jsp").forward(request, response);
<servlet-mapping>
<servlet-name>myapp</servlet-name>
<url-pattern>/old/*</url-pattern>
</servlet-mapping>
适合:临时、简单端口映射
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
保存规则(Debian):
sudo apt install iptables-persistent
sudo netfilter-persistent save
⚠️ 不推荐生产环境长期使用
如果你是想 HTTP → HTTPS 转发:
<Connector port="8080" protocol="HTTP/1.1"
redirectPort="8443" />
| 场景 | 推荐方式 |
|---|---|
| 生产环境 | Nginx + Tomcat |
| 内网测试 | iptables |
| 应用内跳转 | Servlet 转发 |
| 多应用分发 | Nginx location |
如果你能说清楚:
我可以给你一份可直接用的配置。