插件窝 干货文章 如何使用Nginx Proxy Manager实现多台服务器的负载均衡

如何使用Nginx Proxy Manager实现多台服务器的负载均衡

服务器 检查 负载 配置 576    来源:    2025-04-11

使用Nginx Proxy Manager实现多台服务器负载均衡

Nginx Proxy Manager (NPM) 是一个基于Web的Nginx管理界面,可以简化反向代理和负载均衡的配置过程。以下是使用NPM实现多台服务器负载均衡的详细步骤:

1. 安装Nginx Proxy Manager

首先确保你已经安装并运行了Nginx Proxy Manager:

# 使用Docker安装(推荐方式)
docker run -d \
  --name=npm \
  -p 80:80 \
  -p 81:81 \
  -p 443:443 \
  -v npm-data:/data \
  -v npm-letsencrypt:/etc/letsencrypt \
  --restart unless-stopped \
  jc21/nginx-proxy-manager:latest

2. 配置负载均衡

步骤1: 登录NPM管理界面

访问 http://your-server-ip:81,使用默认凭据登录(admin@example.com / changeme)

步骤2: 创建上游服务器组

  1. 点击"Hosts" > "Upstreams" > "Add Upstream"
  2. 输入名称(如"my-app-servers")
  3. 添加后端服务器:
    • 点击"Add Target"
    • 输入服务器IP或域名
    • 输入端口
    • 可选:设置权重(用于加权轮询)

步骤3: 创建代理主机

  1. 点击"Hosts" > "Proxy Hosts" > "Add Proxy Host"
  2. 配置前端:
    • 域名:输入你的公共域名(如app.example.com)
    • Scheme: HTTP或HTTPS
    • Forward Hostname/IP: 选择"Upstream"
    • 选择你刚创建的上游服务器组
  3. 高级选项(可选):
    • 可以配置缓存、WebSocket支持等
    • 在"Custom Locations"中可以添加特定路径的规则

步骤4: 配置SSL证书(可选)

  1. 在代理主机配置中点击"SSL"选项卡
  2. 选择"Request a new SSL Certificate"
  3. 输入邮箱,勾选"同意条款"
  4. 点击"Save"申请Let's Encrypt证书

3. 负载均衡算法

NPM支持多种负载均衡算法:

  1. 轮询(Round Robin):默认算法,请求均匀分配到各服务器
  2. 最少连接(Least Connections):将新请求发给当前连接数最少的服务器
  3. IP哈希(IP Hash):基于客户端IP分配,确保同一IP总是访问同一服务器
  4. 加权轮询(Weighted Round Robin):根据权重分配请求

要更改算法: 1. 编辑上游服务器组 2. 在"Advanced"部分选择算法 3. 对于加权轮询,设置各服务器的权重值

4. 健康检查配置

NPM支持基本的健康检查功能:

  1. 编辑上游服务器组
  2. 在"Health Check"部分:
    • 启用健康检查
    • 设置检查路径(如/health
    • 设置检查间隔(默认5秒)
    • 设置超时时间
    • 设置健康/不健康阈值

5. 高级配置示例

对于更复杂的场景,可以添加自定义Nginx配置:

# 在代理主机的"Advanced"选项卡中添加

# 自定义超时设置
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;

# 自定义负载均衡参数
upstream_backend {
    least_conn;
    server backend1.example.com max_fails=3 fail_timeout=30s;
    server backend2.example.com max_fails=3 fail_timeout=30s;
}

6. 监控和维护

  1. 日志查看:在NPM界面查看访问日志和错误日志
  2. 性能监控:可以集成外部监控工具如Prometheus
  3. 自动扩展:结合云服务API动态添加/移除后端服务器

常见问题解决

  1. 502 Bad Gateway

    • 检查后端服务器是否运行
    • 检查NPM与后端服务器之间的网络连接
    • 验证端口配置是否正确
  2. 健康检查失败

    • 确保健康检查路径在所有后端服务器上可访问
    • 检查防火墙设置是否阻止了健康检查请求
  3. SSL证书问题

    • 确保证书域名与访问域名完全匹配
    • 检查证书是否过期
    • 验证DNS解析是否正确

通过以上配置,你可以轻松实现多台服务器的负载均衡,提高应用的可用性和性能。