温馨提示×

ubuntu apache2怎样做负载均衡

小樊
43
2026-09-02 05:38:53
栏目: 云计算

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

下面给你一个从零开始的完整示例


一、环境假设

  • 负载均衡服务器(Apache):192.168.1.10
  • 后端服务器 1:192.168.1.20:8080
  • 后端服务器 2:192.168.1.21:8080

二、安装 Apache2

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/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/"

    # 可选:负载均衡管理页面
    <Location "/balancer-manager">
        SetHandler balancer-manager
        Require ip 192.168.1.0/24
    </Location>
</VirtualHost>

五、启用站点

sudo a2ensite loadbalancer.conf
sudo a2dissite 000-default.conf
sudo systemctl restart apache2

六、验证负载均衡

多次访问:

curl http://192.168.1.10

如果后端返回不同内容,说明负载均衡已生效。


七、常见负载均衡策略

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

示例:

ProxySet lbmethod=bytraffic

八、健康检查(重要)

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

或:

ProxySet ping=5

九、HTTPS 负载均衡(简要)

ProxyPass "/" "balancer://mycluster/"
SSLProxyEngine on

后端支持 HTTP 或 HTTPS 均可。


十、生产建议

✅ 使用 HTTPS
✅ 限制 balancer-manager 访问
✅ 后端 session 一致性(sticky session)
✅ 配合防火墙(UFW)


如果你愿意,我可以:

  • 给你 Nginx vs Apache 负载均衡对比
  • 配置 Session 黏性(sticky session)
  • HTTPS + 证书(Let’s Encrypt)
  • 或针对 Docker / K8s 场景

你现在是用来做什么系统?(Web / API / 微服务?)

0