温馨提示×

debian nginx怎样设置反向代理

小樊
44
2026-10-15 07:06:50
栏目: 智能运维

在 Debian 上通过 Nginx 设置反向代理一般包括以下几个步骤。下面以**将请求代理到本地的 8080 端口服务(如 Java / Node / Python 应用)**为例说明。


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

sudo apt update
sudo apt install nginx -y

安装完成后 Nginx 会自动启动。


二、创建反向代理配置文件

推荐在 /etc/nginx/sites-available/ 下新建站点配置:

sudo nano /etc/nginx/sites-available/my_proxy

示例配置(最常用):

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

说明

  • proxy_pass:后端服务地址
  • X-Forwarded-*:让后端知道真实用户 IP 和协议
  • server_name:
    • 有域名:example.com
    • 无域名:_(匹配所有)

三、启用站点

sudo ln -s /etc/nginx/sites-available/my_proxy /etc/nginx/sites-enabled/

(可选)删除默认站点:

sudo rm /etc/nginx/sites-enabled/default

四、测试并重启 Nginx

sudo nginx -t
sudo systemctl restart nginx

五、防火墙(如有)

sudo ufw allow 'Nginx Full'

六、常见进阶配置

1️⃣ HTTPS(推荐,使用 Let’s Encrypt)

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com

会自动帮你配置 SSL + 反向代理。


2️⃣ WebSocket 支持

location /ws/ {
    proxy_pass http://127.0.0.1:8080;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

3️⃣ 负载均衡(多后端)

upstream backend {
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
}

server {
    location / {
        proxy_pass http://backend;
    }
}

七、排查问题

journalctl -u nginx
cat /var/log/nginx/error.log

如果你有 具体场景(比如代理 Docker、内网服务、前后端分离、HTTPS、域名),可以告诉我,我可以直接给你一份完整配置。

0 踩