温馨提示×

ubuntu apache怎样做负载均衡

小樊
46
2026-09-20 12:56:17
栏目: 云计算

在 Ubuntu 上用 Apache 做负载均衡,通常是使用 Apache 的 mod_proxy + mod_proxy_balancer 模块,把请求转发到多台后端服务器(如 Tomcat、Node、其他 Apache、Nginx 等)。

下面给你一个从零开始的常见做法


一、环境假设

  • 系统:Ubuntu 20.04 / 22.04
  • Apache:作为反向代理 + 负载均衡
  • 后端:2 台应用服务器(示例)
    • 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

重启 Apache:

sudo systemctl restart apache2

四、配置负载均衡(重点)

1️⃣ 新建配置文件

sudo nano /etc/apache2/sites-available/load-balancer.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>
</VirtualHost>

五、启用站点

sudo a2ensite load-balancer.conf
sudo a2dissite 000-default.conf
sudo systemctl restart apache2

六、负载均衡算法说明

算法 模块 说明
byrequests lbmethod_byrequests 轮询(默认)
bytraffic lbmethod_bytraffic 按流量
bybusyness lbmethod_bybusyness 按忙碌程度

示例:

ProxySet lbmethod=bytraffic

七、健康检查(推荐)

BalancerMember "http://192.168.1.10:8080" status=+H

或自动检测:

ProxySet heartbeat=on

八、Session 保持(Sticky Session)

如果后端有登录状态:

ProxySet stickysession=JSESSIONID

九、验证

curl http://localhost

多次访问,应轮流到不同后端。

访问状态页:

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

十、HTTPS(可选)

使用 Let’s Encrypt:

sudo apt install certbot python3-certbot-apache
sudo certbot --apache

总结

✅ Ubuntu + Apache 负载均衡 =
mod_proxy + mod_proxy_balancer

适合:

  • 小规模集群
  • 内部系统
  • 简单高可用

如果你愿意,我可以帮你:

  • Docker + Apache 负载均衡
  • 对比 Nginx vs Apache 负载均衡
  • 配置 HTTPS + 健康检查实战

你现在的后端是什么?(Tomcat / Node / Nginx / 其他)

0