温馨提示×

ubuntu apache2怎么配置负载均衡

小樊
40
2026-09-02 04:14:48
栏目: 云计算

在 Ubuntu 上使用 Apache2 配置负载均衡,通常是借助 mod_proxymod_proxy_balancer 模块来实现的(反向代理 + 负载均衡)。下面给你一个从零开始的完整示例


一、环境假设

  • 系统:Ubuntu 20.04 / 22.04
  • Apache:apache2
  • 后端应用服务器(示例):
    • 192.168.1.101:8080
    • 192.168.1.102:8080
  • 访问入口:http://your-domain.com

二、启用必要模块

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

启用后重启 Apache:

sudo systemctl restart apache2

三、创建负载均衡站点配置

1️⃣ 新建配置文件

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

2️⃣ 写入如下配置(重点)

<VirtualHost *:80>
    ServerName your-domain.com

    # 负载均衡管理器(可选,用于查看状态)
    <Location /balancer-manager>
        SetHandler balancer-manager
        Require ip 192.168.1.0/24
    </Location>

    <Proxy "balancer://mycluster">
        BalancerMember "http://192.168.1.101:8080"
        BalancerMember "http://192.168.1.102:8080"

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

    ProxyPreserveHost On

    ProxyPass "/balancer-manager" !
    ProxyPass "/" "balancer://mycluster/"
    ProxyPassReverse "/" "balancer://mycluster/"
</VirtualHost>

四、启用站点

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

五、常见负载均衡策略

策略 说明
byrequests 轮询(默认)
bytraffic 按流量
bybusyness 按繁忙程度

示例:

ProxySet lbmethod=bytraffic

六、会话保持(Sticky Session)

如果后端有登录状态:

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

后端应用需设置 JSESSIONID=node1node2


七、健康检查(推荐)

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

或:

ProxySet ping=5

八、验证

curl http://your-domain.com

多次访问,观察是否分发到不同后端。


九、常用排错命令

sudo apache2ctl configtest
sudo journalctl -u apache2
sudo tail -f /var/log/apache2/error.log

如果你愿意,我可以:

  • 给你 HTTPS + 负载均衡 配置
  • Docker 后端 示例
  • 或对比 Nginx 负载均衡

直接告诉我你的使用场景即可。

0