温馨提示×

Debian nginx怎么配置反向代理

小樊
54
2026-09-12 11:09:34
栏目: 智能运维

在 Debian 上配置 Nginx 反向代理 一般分为几个步骤:安装 Nginx、修改配置文件、测试并生效。下面以 将请求代理到本地 8080 端口的后端服务 为例说明。


一、安装 Nginx(如未安装)

sudo apt update
sudo apt install nginx -y

安装完成后:

sudo systemctl status nginx

二、创建或编辑站点配置文件

方式一:新建站点配置(推荐)

sudo nano /etc/nginx/sites-available/example.com

示例配置(反向代理到 127.0.0.1:8080):

server {
    listen 80;
    server_name example.com www.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/example.com /etc/nginx/sites-enabled/

三、常用反向代理场景

1️⃣ 代理到本地端口(如 Node / Java / Python)

proxy_pass http://127.0.0.1:3000;

2️⃣ 代理到另一个服务器

proxy_pass http://192.168.1.100:8080;

3️⃣ 代理 HTTPS 后端

proxy_pass https://backend.example.com;

4️⃣ WebSocket 支持(如 Vue / React 热更新)

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

四、检查并重启 Nginx

sudo nginx -t
sudo systemctl reload nginx

或

sudo systemctl restart nginx

五、防火墙(如有)

sudo ufw allow 'Nginx Full'

六、示例:完整最小配置

server {
    listen 80;
    server_name localhost;

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

如果你有 具体后端类型(Docker / Spring Boot / Node / 内网服务) 或 HTTPS / 域名需求,我可以给你更精确的配置。

0 踩