Nginx 配置反向代理多端口站点实战指南

2025.5.30 杂七杂八 1901

Nginx 配置反向代理多端口站点实战指南

本文详细讲解如何通过Nginx反向代理实现多端口站点统一访问,涵盖基础配置、负载均衡策略、SSL证书集成等核心技巧,并提供生产环境优化建议,帮助开发者高效管理分散服务。

一、反向代理与多端口站点的应用场景

当服务器运行多个独立服务(如Web应用、API服务、静态资源服务)时,这些服务往往监听不同端口。通过Nginx反向代理可以实现:

  • 统一通过80/443端口对外暴露服务
  • 隐藏后端服务器真实端口
  • 实现请求的智能路由和负载均衡
  • 集中管理SSL证书和访问控制

二、基础配置实现

以下示例展示如何将不同域名的请求代理到不同端口:

 主配置文件引入子配置
include /etc/nginx/conf.d/.conf;
 配置项1:代理API服务(3000端口)
server {
    listen 80;
    server_name api.yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

 配置项2:代理前端应用(8080端口)
server {
    listen 80;
    server_name app.yourdomain.com;

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

三、高级配置技巧

1. 基于路径的路由

server {
    listen 80;
    server_name yourdomain.com;

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

    location /static/ {
        proxy_pass http://127.0.0.1:8081/;
    }
}

2. 负载均衡配置

upstream backend {
    server 127.0.0.1:3000 weight=3;
    server 127.0.0.1:3001;
    server 127.0.0.1:3002 backup;
}

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

3. WebSocket代理

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

四、性能优化建议

  • 启用proxy_buffering减少后端服务器压力
  • 配置proxy_cache缓存静态内容
  • 使用keepalive维持后端连接
  • 设置合理的proxy_timeout

五、安全加固措施

  1. 配置SSL终止:在Nginx层统一处理HTTPS
  2. 设置proxy_hide_header隐藏敏感信息
  3. 通过allow/deny限制访问源IP
  4. 定期检查Nginx漏洞并更新版本

通过以上配置,可以构建高性能、安全可靠的多端口服务代理架构。实际部署时建议结合日志监控和压力测试进行调优。

评论