温馨提示×

nginx在debian如何设反向代理

小樊
47
2026-10-03 14:12:47
栏目: 智能运维

在 Debian 上用 nginx 配置反向代理 通常包括以下几步:安装 nginx、写站点配置、反代到后端服务、测试并重载。

下面以 把 http://yourdomain.com 反代到本地 127.0.0.1:8080 为例说明。


一、安装 nginx(Debian)

sudo apt update
sudo apt install nginx -y

安装后 nginx 会自动启动。

查看状态:

systemctl status nginx

二、创建反向代理配置

方法 1:新建站点配置(推荐)

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

写入以下内容:

server {
    listen 80;
    server_name yourdomain.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;
    }
}

保存后创建软链接:

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

方法 2:直接修改默认站点(简单测试用)

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

把 location / 改成上面的 proxy_pass 配置即可。


三、测试并重载 nginx

检查配置是否有误:

sudo nginx -t

重载配置:

sudo systemctl reload nginx

四、常见问题

1️⃣ 反代 HTTPS 后端

proxy_pass https://127.0.0.1:8443;
proxy_ssl_verify off;  # 如果是自签证书

2️⃣ WebSocket 支持

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

3️⃣ 使用 HTTPS(推荐)

安装 certbot:

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

4️⃣ 防火墙(如有)

sudo ufw allow 'Nginx Full'

五、示例:完整 HTTP + WebSocket

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

如果你有 具体后端(Node / Java / Docker / 内网服务) 或 想做负载均衡 / SSL / 路径反代,可以告诉我,我给你定制配置。

0 踩