温馨提示×

linux nginx怎样设置代理

小樊
46
2026-10-10 20:50:31
栏目: 智能运维

在 Linux 上使用 Nginx 做代理,通常指 反向代理(Reverse Proxy)。下面从安装 → 基础配置 → 常见示例给你讲清楚。


一、安装 Nginx(如未安装)

CentOS / Rocky / Alma

yum install -y nginx
systemctl enable nginx
systemctl start nginx

Ubuntu / Debian

apt update
apt install -y nginx
systemctl enable nginx
systemctl start nginx

二、Nginx 代理核心配置(反向代理)

1️⃣ 基本反向代理示例

假设:

  • 域名:example.com
  • 后端服务:127.0.0.1:8080

编辑配置:

vi /etc/nginx/conf.d/proxy.conf

内容:

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

保存后:

nginx -t
systemctl reload nginx

三、常见代理场景

✅ 1. 代理到本地端口(Node / Java / Python)

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

✅ 2. 代理指定路径(API 分离)

location /api/ {
    proxy_pass http://127.0.0.1:9000/;
}

⚠️ 注意:

  • proxy_pass 末尾加 / → /api/test → http://ip:9000/test
  • 不加 / → /api/test → http://ip:9000/api/test

✅ 3. HTTPS + 代理(SSL)

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate     /etc/nginx/ssl/example.com.crt;
    ssl_certificate_key /etc/nginx/ssl/example.com.key;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
    }
}

✅ 4. 负载均衡代理(多后端)

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

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

四、常用优化参数(推荐)

proxy_connect_timeout 60s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;
proxy_buffering on;

五、正向代理(较少用)

如果你说的是客户端通过 Nginx 上网(正向代理):

server {
    listen 3128;
    resolver 8.8.8.8;

    location / {
        proxy_pass http://$http_host$request_uri;
    }
}

⚠️ 正向代理不适合 HTTPS(需要特殊模块)


六、排查问题

nginx -t
journalctl -u nginx
tail -f /var/log/nginx/error.log

如果你能告诉我:

  • ✅ 是 反向代理还是正向代理
  • ✅ 后端是什么服务(Java / Node / Docker)
  • ✅ 是否要 HTTPS

我可以直接帮你写完整可用配置。

0 踩