宝塔面板需通过Nginx upstream配合反向代理实现负载均衡,支持轮询、IP哈希等策略;可选健康检查模块或对接HAProxy、云SLB等外部负载均衡器。

如果您希望在宝塔面板中为站点实现负载均衡,使请求分发至多台后端服务器协同处理,则需借助反向代理机制配合外部负载均衡组件或手动配置上游服务器集群。宝塔面板本身不内置分布式负载均衡功能,但可通过Nginx反向代理模块结合 upstream 指令完成基础轮询、IP哈希等策略配置。以下是具体操作步骤:
一、配置Nginx upstream模块定义后端服务器组
该步骤用于在Nginx配置中声明一组后端服务器,作为负载均衡的上游节点,支持多种调度算法与健康检查基础设置。
1、登录宝塔面板,进入【网站】→ 选择目标站点 → 点击【设置】→ 切换到【配置文件】选项卡。
2、在 server 块上方空白处(位于 http 块内),插入 upstream 定义,例如:
upstream backend_cluster {
ip_hash;
server 192.168.1.10:8080 weight=3;
server 192.168.1.11:8080 weight=2;
server 192.168.1.12:8080 backup;
}
3、保存配置文件后,点击【重载配置】使 upstream 生效。
二、修改站点Nginx配置启用反向代理指向upstream
此步骤将原站点的请求转发至 upstream 定义的服务器组,替代默认的本地PHP或静态文件处理逻辑,从而实现流量分发。
1、仍在该站点的【配置文件】中,定位到 location / 区块。
2、删除原有 root、index、try_files 或 fastcgi_pass 等本地服务指令。
3、替换为以下反向代理配置:
proxy_pass http://backend_cluster;
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;
4、确认无语法错误后保存,并点击【重载配置】。
三、启用Nginx健康检查(需编译含nginx_upstream_check_module)
标准宝塔安装的Nginx未包含第三方健康检查模块,若需自动剔除故障节点,须手动编译添加该模块或使用兼容版本的Nginx。
1、通过SSH连接服务器,执行命令检查当前Nginx是否支持 check 指令:nginx -V 2>&1 | grep -o 'upstream_check'。
2、若未返回结果,需下载对应版本Nginx源码及 nginx_upstream_check_module 补丁,重新编译安装。
3、编译完成后,在 upstream 块中添加检查参数,例如:check interval=3 rise=2 fall=5 timeout=1 type=http;
4、重启Nginx服务使新模块与配置生效。
四、部署独立负载均衡器(如HAProxy)并对接宝塔站点
当后端服务器跨物理网络或需更高级策略(如SSL卸载、会话保持、响应头改写)时,可在前置服务器部署HAProxy作为专用负载均衡层,宝塔站点仅作为纯应用节点运行。
1、在独立服务器上安装HAProxy:apt install haproxy(Debian/Ubuntu)或 yum install haproxy(CentOS)。
2、编辑 /etc/haproxy/haproxy.cfg,添加 frontend 与 backend 配置,例如:
frontend http_front
bind *:80
default_backend http_back
backend http_back
balance roundrobin
server node1 192.168.1.10:80 check
server node2 192.168.1.11:80 check
3、关闭各宝塔服务器上的防火墙80端口限制,并确保其Nginx监听 80 端口且不绑定公网IP。
4、启动HAProxy:systemctl start haproxy,并将域名DNS解析指向HAProxy所在服务器IP。
五、使用云服务商SLB或硬件LB对接宝塔后端节点
适用于已采购阿里云SLB、腾讯云CLB、AWS ALB等托管型负载均衡服务的场景,宝塔服务器仅需开放指定端口并配置安全组规则,由云平台统一管理分发逻辑与监控。
1、登录云厂商控制台,创建负载均衡实例,协议选择HTTP/HTTPS,监听端口设为80或443。
2、添加后端服务器:填入各宝塔服务器的内网IP及应用端口(如80或8080),启用健康检查。
3、在宝塔服务器的安全组中放行该端口入方向流量,来源设置为云LB的健康检查IP段(如阿里云为 100.100.0.0/16)。
4、在宝塔站点中禁用强制HTTPS跳转(如已开启),避免与云LB的SSL卸载策略冲突。










