温馨提示×

Debian下Nginx怎样配置反向代理

小樊
40
2026-08-20 13:49:31
栏目: 智能运维

在 Debian 下配置 Nginx 反向代理 的步骤如下,适用于常见场景(如把请求转发到后端服务、Node.js / Java / Python 服务、或另一个 Web 服务器)。


一、安装 Nginx(如果还没装)

sudo apt update
sudo apt install nginx -y

安装完成后:

sudo systemctl status nginx

二、基本反向代理配置示例

1️⃣ 编辑 Nginx 配置文件

推荐方式:新建一个站点配置文件

sudo nano /etc/nginx/sites-available/reverse-proxy

2️⃣ 示例配置(反向代理到本地 8080 端口)

server {
    listen 80;
    server_name example.com;  # 改成你的域名或 IP

    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;
    }
}

✅ 说明:

  • proxy_pass:后端服务地址
  • proxy_set_header:传递真实客户端信息

三、启用配置

sudo ln -s /etc/nginx/sites-available/reverse-proxy /etc/nginx/sites-enabled/

四、检查并重启 Nginx

sudo nginx -t
sudo systemctl restart nginx

五、常见场景示例


✅ 1. 反向代理 HTTPS 后端(如 Node.js / Spring Boot)

location / {
    proxy_pass https://127.0.0.1:8443;
    proxy_ssl_verify off;  # 本地证书可关闭验证
}

✅ 2. 反向代理 WebSocket

location /ws/ {
    proxy_pass http://127.0.0.1:3000;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

✅ 3. 反向代理 + 静态文件

location / {
    proxy_pass http://127.0.0.1:8000;
}

location /static/ {
    root /var/www/html;
    expires 30d;
}

✅ 4. 反向代理到另一个域名

location /api/ {
    proxy_pass http://api.example.com/;
}

⚠️ 注意 /api/ 末尾是否带 /,会影响转发路径。


六、常用调试命令

# 查看错误日志
sudo tail -f /var/log/nginx/error.log

# 查看访问日志
sudo tail -f /var/log/nginx/access.log

# 重载配置(不中断服务)
sudo nginx -s reload

七、防火墙(如启用 UFW)

sudo ufw allow 'Nginx Full'

八、总结

✅ Debian 下 Nginx 反向代理的核心就是:

proxy_pass http://后端地址;
proxy_set_header 传递头信息;

如果你有具体场景(如 Docker / HTTPS / 负载均衡 / 多服务路由),可以告诉我,我可以给你更精确的配置。

0