温馨提示×

ubuntu apache2怎样配置负载均衡

小樊
45
2026-09-17 08:09:42
栏目: 云计算

在 Ubuntu 上使用 Apache2 配置负载均衡,通常是通过 mod_proxy、mod_proxy_balancer 等模块实现的(反向代理 + 负载均衡)。下面是一个完整、常用的配置示例。


一、安装 Apache2

sudo apt update
sudo apt install apache2

二、启用必要模块

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod lbmethod_byrequests
sudo a2enmod headers

lbmethod_byrequests 是按请求数负载均衡(最常用)

重启 Apache:

sudo systemctl restart apache2

三、配置负载均衡(示例)

假设:

  • Apache 作为前端: 192.168.1.10
  • 后端应用服务器:
    • 192.168.1.20:8080
    • 192.168.1.21:8080

1️⃣ 创建站点配置

sudo nano /etc/apache2/sites-available/loadbalancer.conf

2️⃣ 配置文件内容

<VirtualHost *:80>
    ServerName example.com

    # 负载均衡器
    <Proxy "balancer://mycluster">
        BalancerMember "http://192.168.1.20:8080"
        BalancerMember "http://192.168.1.21:8080"

        # 负载均衡算法
        ProxySet lbmethod=byrequests
    </Proxy>

    ProxyPreserveHost On

    ProxyPass "/" "balancer://mycluster/"
    ProxyPassReverse "/" "balancer://mycluster/"

    # 可选:会话保持
    # Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
</VirtualHost>

四、启用站点

sudo a2ensite loadbalancer.conf
sudo a2dissite 000-default.conf   # 可选
sudo systemctl reload apache2

五、常用负载均衡策略

在 ProxySet 中修改:

策略 说明
byrequests 按请求数(默认)
bytraffic 按流量
bybusyness 按忙碌程度

示例:

ProxySet lbmethod=bytraffic

六、健康检查(推荐)

<Proxy "balancer://mycluster">
    BalancerMember "http://192.168.1.20:8080" status=+H
    BalancerMember "http://192.168.1.21:8080"
</Proxy>

状态说明:

  • +H:热备(仅主节点挂了才用)

七、查看负载均衡状态页面(可选)

<Location "/balancer-manager">
    SetHandler balancer-manager
    Require local
</Location>

访问:

http://服务器IP/balancer-manager

八、HTTPS(简要)

如需 HTTPS:

sudo a2enmod ssl
sudo a2ensite default-ssl

并在 VirtualHost *:443 中配置 ProxyPass。


九、常见问题

✅ 502 Bad Gateway

  • 后端服务未启动
  • 防火墙未放行端口

✅ 静态资源问题

  • 确保后端返回正确 Host

如果你有 具体场景(如 Tomcat / Node / Docker / HTTPS / 会话保持),我可以给你更精确的配置。

0 踩