千家信息网

keepalived+haproxy搭建web群集

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,haproxy配置文件详解参考:haproxy环境如下:一、准备:1、下载haproxy 软件包,haproxy 提取码: 9it62、web 网站可以使用Apache、Nginx、搭建都可以,这里为
千家信息网最后更新 2025年12月02日keepalived+haproxy搭建web群集

haproxy配置文件详解参考:haproxy

环境如下:

一、准备:

1、下载haproxy 软件包,haproxy 提取码: 9it6

2、web 网站可以使用Apache、Nginx、搭建都可以,这里为了方便我就直接使用系统盘带的httpd服务了。

web网站的搭建可参考:基于 Linux 安装 web 服务及基本配置基于 Centos 7 搭建Nginx

3、配置防火墙放行流量

4、我这里使用的全部是centos 7系统,注意,该环境不是生产环境,若是在生产环境中,肯定还有后端存储来存放网页文件,web服务器读取存储服务器上的网页返回给客户端。这样才可保证网页内容的一致性。

二、开始搭建:

1、配置主服务器:

[root@haproxy1 /]# yum -y install pcre-devel bzip2-devel keepalived          # 安装相关的依赖包和软件包[root@haproxy1 media]# tar zxf haproxy-1.5.19.tar.gz -C /usr/src/[root@haproxy1 media]# cd /usr/src/haproxy-1.5.19/[root@haproxy1 haproxy-1.5.19]# make TARHET=linux26  &&  make  install         # 编译安装,TARGET表示64位操作系统[root@haproxy1 haproxy-1.5.19]# mkdir /etc/haproxy                    # 创建用来存放主配文件的目录[root@haproxy1 haproxy-1.5.19]# cp examples/haproxy.cfg /etc/haproxy/             # 将编译包中的主配文件复制到配置文件目录,注意啊:这个配置文件是在编译包中,注意看路径[root@haproxy1 /]# vim /etc/haproxy/haproxy.cfg # this config needs haproxy-1.1.28 or haproxy-1.2.1global        log /dev/log    local0 info        log /dev/log    local0 notice        #log loghost    local0 info        maxconn 4096        #chroot /usr/share/haproxy                # 将此行注释掉        uid 99        gid 99        daemon        #debug        #quietdefaults        log     global        mode    http        option  httplog        option  dontlognull        retries 3        redispatch        maxconn 2000        contimeout      5000        clitimeout      50000        srvtimeout      50000listen  webcluster  0.0.0.0:80                             # 将端口号修改为80,webcluster为群集名称,可修改        option  httpchk GET  /index.html        balance roundrobin                            # 表示采用轮询算法        server  web1 192.168.1.20:80 check inter 2000 fall 3                  # 两个web节点        server  web2 192.168.1.30:80 check inter 2000 fall 3[root@haproxy1 /]# cp /usr/src/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy             # 复制服务控制脚本[root@haproxy1 /]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy                  # 创建链接使命令使用更方便[root@haproxy1 /]# chmod +x /etc/init.d/haproxy                      # 添加执行权限[root@haproxy1 /]# chkconfig --add /etc/init.d/haproxy                # 添加为系统服务[root@haproxy1 /]# /etc/init.d/haproxy start                 # 启动Starting haproxy (via systemctl):                          [  OK  ][root@haproxy1 /]# vim /etc/rsyslog.d/haproxy.conf              # 配置日志文件,写入如下内容if ($programname == 'haproxy' and $syslogseverity-text == 'info') then -/var/log/haproxy/haproxy-info.log& ~ if ($programname == 'haproxy' and $syslogseverity-text == 'notice') then -/var/log/haproxy/haproxy-notice.log& ~ [root@haproxy1 /]# systemctl restart rsyslog.service                 # 重启日志服务

配置 keepalived :

[root@haproxy1 /]# vim /etc/keepalived/keepalived.conf ! Configuration File for keepalivedglobal_defs {   notification_email {     acassen@firewall.loc     failover@firewall.loc     sysadmin@firewall.loc   }   notification_email_from Alexandre.Cassen@firewall.loc   smtp_server 192.168.200.1   smtp_connect_timeout 30   router_id LVS1          # 主从调度器名称区分开}vrrp_instance VI_1 {    state MASTER    interface ens33              # 修改网卡名称    virtual_router_id 51    priority 100    advert_int 1    authentication {        auth_type PASS        auth_pass 1111    }    virtual_ipaddress {         192.168.1.100          # 填写漂移地址    }}[root@haproxy1 /]# systemctl restart keepalived             # 重启服务使配置生效

2、配置从服务器:

[root@haproxy2 /]#  yum -y install pcre-devel bzip2-devel  keepalived[root@haproxy2 media]# tar zxf haproxy-1.5.19.tar.gz -C /usr/src/[root@haproxy2 media]# cd /usr/src/haproxy-1.5.19/[root@haproxy2 haproxy-1.5.19]# make TARGET=linux26 && make install[root@haproxy2 haproxy-1.5.19]# mkdir /etc/haproxy[root@haproxy2 haproxy-1.5.19]# scp root@192.168.1.10:/etc/haproxy/haproxy.cfg /etc/haproxy/          # 图个方便直接复制root@192.168.1.10's password: haproxy.cfg                                          100%  570     0.6KB/s   00:00    [root@haproxy2 /]# cp /usr/src/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy           # 复制服务控制脚本[root@haproxy2 /]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy[root@haproxy2 /]# chmod +x /etc/init.d/haproxy [root@haproxy2 /]# chkconfig --add /etc/init.d/haproxy [root@haproxy2 /]# /etc/init.d/haproxy start Starting haproxy (via systemctl):                          [  OK  ][root@haproxy2 /]# scp root@192.168.1.10:/etc/rsyslog.d/haproxy.conf /etc/rsyslog.d/root@192.168.1.10's password: haproxy.conf                                         100%  226     0.2KB/s   00:00   [root@haproxy2 /]# systemctl restart rsyslog.service                 # 重启服务使配置生效[root@haproxy2 haproxy-1.5.19]# scp root@192.168.1.10:/etc/keepalived/keepalived.conf /etc/keepalived/root@192.168.1.10's password: keepalived.conf                                      100% 3511     3.4KB/s   00:00    [root@haproxy2 /]# vim /etc/keepalived/keepalived.conf            # 修改主配置文件,修改如下几个部分....................... 省略部分   router_id LVS2               # 主从调度器区分ID}vrrp_instance VI_1 {    state BACKUP                       # 状态修改为 BACKUP    interface ens33                     virtual_router_id 51    priority 90                           # 优先级调低    advert_int 1    authentication {        auth_type PASS        auth_pass 1111    }    virtual_ipaddress {        192.168.1.100                # 漂移地址    }}[root@haproxy2 /]# systemctl restart keepalived

两个web节点配置(两个配置相同):

[root@web2 /]# yum -y install httpd


[root@web2 /]# echo server2.com > /var/www/html/index.html # 创建测试网页

[root@web2 /]# systemctl start httpd

[root@web2 /]# systemctl enable httpd

当然,在实际生产环境中网页是一样的,这里我为了验证出效果,所以做了两个不同的测试文件。

配置 服务 文件 环境 网页 两个 服务器 系统 名称 生产 编译 主从 内容 地址 日志 是在 目录 网站 脚本 节点 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 重庆定制软件开发哪家好 大学网络技术宣传 计算网络技术(G5)学费多少 gprs模块服务器 浙江标准软件开发试验设备 保存文件内容用什么数据库好 电子图书数据库检索途径有啥 报表软件开发公司 政法干警的服务器什么时候开始 交换机网络安全设置 全数据库网络系统 网络安全学习手指操 App如何与数据库进行数据传递 软件开发项目政府技术评审 dbc数据库安装错误 小型财务软件开发工具 广域网和接入网络技术 燃烧的远征会开新服务器吗 怀柔区综合网络技术服务介绍 计算机网络技术都包括什么 数据库数据修改如何做到安全问题 支付软件开发费用账务处理 数据库技术的实用性 代理服务器app免费 敏捷开发在软件开发中的地位 网络安全体现在多网合一 怎么登陆艾尔登法环服务器 软件开发公司怎么查 确保企业网络安全运行 京东dell服务器安全吗
0