在 Debian 系统上为 Tomcat 设置代理,通常有两种常见场景:
适用于:Tomcat 需要访问外部网络(如下载依赖、调用第三方接口)。
编辑 Tomcat 的启动环境文件:
sudo nano /opt/tomcat/bin/setenv.sh
(如果不存在就新建)
添加以下内容:
export JAVA_OPTS="$JAVA_OPTS \
-Dhttp.proxyHost=proxy.example.com \
-Dhttp.proxyPort=8080 \
-Dhttps.proxyHost=proxy.example.com \
-Dhttps.proxyPort=8080 \
-Dhttp.nonProxyHosts=localhost|127.0.0.1"
nonProxyHosts表示不走代理的地址
重启 Tomcat:
sudo systemctl restart tomcat
适用于:
sudo apt update
sudo apt install nginx
sudo nano /etc/nginx/sites-available/tomcat
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
如果你希望 Tomcat 知道自己在代理后面:
编辑:
sudo nano /opt/tomcat/conf/server.xml
修改 Connector:
<Connector port="8080" protocol="HTTP/1.1"
proxyName="example.com"
proxyPort="80"
scheme="http"
secure="false" />
如果是 HTTPS:
scheme="https" secure="true" proxyPort="443"
✅ Debian 防火墙
sudo ufw allow 80
sudo ufw allow 443
✅ Tomcat 只监听 localhost
address="127.0.0.1"
如果你能说明是 “Tomcat 走代理上网” 还是 “用代理访问 Tomcat”,我可以给你更精确的配置。