温馨提示×

apache2在centos如何负载

小樊
39
2026-10-08 21:02:54
栏目: 智能运维

在 CentOS 上,Apache HTTP Server(通常叫 httpd)本身不是做“负载均衡/反向代理”的专业负载器,但它可以通过 mod_proxy 模块来实现 简单的负载均衡(反向代理 + 负载分发)。

下面分几种常见情况说明。


一、Apache 做负载均衡(反向代理方式)

1️⃣ 安装 Apache(CentOS 7/8)

# CentOS 7
yum install httpd -y

# CentOS 8
dnf install httpd -y

启动并设置开机自启:

systemctl start httpd
systemctl enable httpd

2️⃣ 启用必要模块

Apache 负载均衡依赖以下模块:

  • mod_proxy
  • mod_proxy_http
  • mod_proxy_balancer
  • mod_lbmethod_byrequests(常用)

检查并启用:

httpd -M | grep proxy

如未启用,在 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

3️⃣ 配置负载均衡(示例)

假设后端有两个 Tomcat / Nginx / 应用服务:

  • 192.168.1.10:8080
  • 192.168.1.11:8080

编辑配置文件:

vi /etc/httpd/conf.d/loadbalancer.conf
<VirtualHost *:80>
    ServerName www.example.com

    <Proxy "balancer://mycluster">
        BalancerMember "http://192.168.1.10:8080"
        BalancerMember "http://192.168.1.11:8080"
        ProxySet lbmethod=byrequests
    </Proxy>

    ProxyPass "/" "balancer://mycluster/"
    ProxyPassReverse "/" "balancer://mycluster/"

    ErrorLog logs/lb_error.log
    CustomLog logs/lb_access.log common
</VirtualHost>

重启 Apache:

systemctl restart httpd

✅ 此时 Apache 就实现了 轮询负载均衡


二、常见负载策略(lbmethod)

策略 说明
byrequests 按请求数(默认,轮询)
bytraffic 按流量
bybusyness 按连接数

示例:

ProxySet lbmethod=bytraffic

三、会话保持(Sticky Session)

如果后端有 session(如 Tomcat):

<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:热备
  • 节点故障时可自动跳过

五、重要说明(生产建议)

⚠️ Apache 负载能力有限

  • 适合:中小流量、内部系统
  • 不适合:高并发、超大流量

更推荐的负载方案

  • Nginx(轻量、高性能)
  • HAProxy(专业负载均衡)
  • LVS(四层,超高性能)

常见架构:

用户 → Nginx/HAProxy → Apache(Tomcat)

六、总结

✅ CentOS 上 Apache 负载方式:

  • 使用 mod_proxy + mod_proxy_balancer
  • 本质是 反向代理负载

如果你愿意,我可以:

  • 给你 Nginx 负载均衡配置
  • 给你 Apache + Tomcat 集群完整示例
  • 帮你选 最适合你业务的方案

你现在是打算接 Tomcat / Java / PHP / 多台 Web?

0 踩