温馨提示×

Tomcat如何设Debian代理

小樊
36
2026-09-15 16:03:22
栏目: 智能运维

Debian 系统上为 Tomcat 设置代理,通常有两种常见场景:


一、Tomcat 走 HTTP/HTTPS 代理(访问外网)

适用于:Tomcat 需要访问外部网络(如下载依赖、调用第三方接口)。

1️⃣ 修改 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

二、Debian 用 Nginx / Apache 反代 Tomcat(常见生产方案)

适用于:

  • 用 80/443 端口访问 Tomcat
  • HTTPS 卸载
  • 多应用共用端口

示例:Nginx 反向代理 Tomcat(8080)

1️⃣ 安装 Nginx

sudo apt update
sudo apt install nginx

2️⃣ 配置 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 自身配置 Proxy(server.xml)

如果你希望 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”,我可以给你更精确的配置。

0