温馨提示×

ubuntu apache怎样配置负载均衡

小樊
33
2026-10-16 21:19:59
栏目: 云计算

在 Ubuntu 上用 Apache 配置负载均衡,通常是通过 Apache 的 mod_proxy 和 mod_proxy_balancer 模块 来实现反向代理 + 负载均衡。下面给你一个从安装到配置的完整示例。


一、环境假设

  • Ubuntu 20.04 / 22.04
  • Apache 作为负载均衡器(前端)
  • 后端有 2 个应用服务器(如 Tomcat / Node / 其他 Web 服务)

示例后端:

  • 192.168.1.10:8080
  • 192.168.1.11:8080

二、安装 Apache

sudo apt update
sudo apt install apache2 -y

三、启用必要模块

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

四、配置负载均衡(推荐方式:虚拟主机)

1. 创建配置文件

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

2. 写入配置内容

<VirtualHost *:80>
    ServerName example.com

    # 负载均衡器定义
    <Proxy "balancer://mycluster">
        BalancerMember "http://192.168.1.10:8080"
        BalancerMember "http://192.168.1.11:8080"

        # 负载均衡策略
        ProxySet lbmethod=byrequests
    </Proxy>

    # 反向代理
    ProxyPreserveHost On
    ProxyPass "/" "balancer://mycluster/"
    ProxyPassReverse "/" "balancer://mycluster/"

    # 可选:状态页面
    <Location "/balancer-manager">
        SetHandler balancer-manager
        Require local
    </Location>

    ErrorLog ${APACHE_LOG_DIR}/lb_error.log
    CustomLog ${APACHE_LOG_DIR}/lb_access.log combined
</VirtualHost>

五、启用站点

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

六、测试负载均衡

curl http://localhost

多次访问,请求会轮流打到不同后端。


七、常见负载均衡算法

在 ProxySet 中修改:

算法 说明
byrequests 轮询(默认)
bytraffic 按流量
bybusyness 按连接数

示例:

ProxySet lbmethod=bytraffic

八、会话保持(Sticky Session)

如果后端需要会话一致性:

<Proxy "balancer://mycluster">
    BalancerMember "http://192.168.1.10:8080" route=node1
    BalancerMember "http://192.168.1.11:8080" route=node2
    ProxySet stickysession=JSESSIONID
</Proxy>

九、健康检查(可选)

BalancerMember "http://192.168.1.10:8080" status=+H
  • +H:热备
  • -H:下线

十、HTTPS(简单说明)

在 *:443 的 VirtualHost 中:

  • 启用 ssl
  • 将 ProxyPass 指向 balancer://mycluster

总结

✅ Ubuntu + Apache 负载均衡核心步骤:

  1. 安装 apache2
  2. 启用 proxy + balancer 模块
  3. 配置 balancer://
  4. 使用 ProxyPass 反向代理
  5. 重启 Apache

如果你愿意,我可以:

  • 给你 Nginx vs Apache 负载均衡对比
  • 帮你配置 HTTPS + 负载均衡
  • 按你的 具体后端(Java / Node / Python) 写配置

你现在的后端是什么服务?

0 踩