温馨提示×

apache在centos如何负载均衡

小樊
49
2026-09-18 03:04:22
栏目: 云计算

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


一、环境准备

假设:

  • Apache 服务器(负载均衡器):192.168.1.10
  • 后端应用服务器(Tomcat / Nginx / 其他 Apache):
    • 192.168.1.20:8080
    • 192.168.1.21:8080

系统:CentOS 7 / 8


二、安装 Apache

# CentOS 7
yum install httpd -y

# CentOS 8
dnf install httpd -y

启动并设置开机自启:

systemctl start httpd
systemctl enable httpd

三、启用必要模块

Apache 负载均衡需要以下模块:

httpd -M | grep proxy

如果没有以下模块,需要确认已加载:

  • proxy_module
  • proxy_http_module
  • proxy_balancer_module
  • lbmethod_byrequests_module

CentOS 默认已启用,如未启用,可在配置中确认:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so

四、配置负载均衡(核心)

1️⃣ 创建配置文件

vi /etc/httpd/conf.d/balancer.conf

2️⃣ 基础负载均衡配置示例

<VirtualHost *:80>
    ServerName www.example.com

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

        # 负载均衡算法(按请求数)
        ProxySet lbmethod=byrequests
    </Proxy>

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

    # 状态页面(可选)
    <Location "/balancer-manager">
        SetHandler balancer-manager
        Require ip 192.168.1.0/24
    </Location>
</VirtualHost>

五、常用负载均衡算法

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

示例:

ProxySet lbmethod=bytraffic

六、会话保持(Session 粘性)

如果后端需要 Session:

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

后端需设置:

  • Tomcat:jvmRoute="node1"

七、健康检查(推荐)

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

状态说明:

  • +H:热备
  • -H:停用

八、防火墙设置

firewall-cmd --permanent --add-service=http
firewall-cmd --reload

九、验证

httpd -t
systemctl restart httpd

访问:

  • http://192.168.1.10
  • http://192.168.1.10/balancer-manager

十、适用场景说明

✅ 适合:

  • 反向代理
  • HTTP / HTTPS 负载均衡
  • 内部服务分发

❌ 不适合:

  • 超高性能 L4 负载(建议 LVS / Nginx / HAProxy)

如果你需要:

  • HTTPS 负载均衡
  • Apache + Tomcat 集群
  • 多端口 / 多域名
  • 高可用(Keepalived)

可以告诉我你的具体场景,我可以直接给你定制配置。

0 踩