dyok 发表于 2019-1-1 14:04:43

Haproxy实现大并发web高可用群集部署

                                      Haproxy web群集部署
  HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理,HAProxy实现了一种 单一进程模型,此模型支持非常大的并发连接数多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。                           
  部署环境:
  主机
  IP地址
  主机名
  软件
  操作系统
  Haproxy服务器
  192.168.1.10
  Haproxy
  Haproxy-1.4.24
  Centos-6.5
  Nginx1服务器
  192.168.1.20
  Nginx1
  Nginx-1.6.2
  Centos-6.5
  Nginx2服务器
  192.168.1.30
  Nginx2
  Nginx-1.6.2
  Centos-6.5
  客户机
  192.168.1.40
  Khj
  IE浏览器
  Centos-6.5
https://s2.运维网.com/wyfs02/M00/9B/5A/wKioL1liLPCzgo2OAAAJh5vnxhE111.png
  编译安装测试nginx
  修改ip地址 移走yum仓库,在下面搭建新的本地yum仓库 创建nginx软件包存放文件
https://s4.运维网.com/wyfs02/M01/9B/5A/wKiom1liLPqCMMc3AACMzreMQYM063.png
  挂载nginx光盘 cp到/nginx下
https://s2.运维网.com/wyfs02/M01/9B/5A/wKioL1liLQSDCIiyAAAnGOJ7cm8395.png
  搭建本地yum仓库
https://s2.运维网.com/wyfs02/M02/9B/5A/wKiom1liLQ6gdh1fAAATgAN-x08971.png
  yum文件nginx.repo内容:
https://s3.运维网.com/wyfs02/M02/9B/5A/wKioL1liLRaTqozVAAAOcvRKhE8153.png
  进入/nginx目录tar nginx软件包 创建nginx用户名,
https://s3.运维网.com/wyfs02/M00/9B/5A/wKiom1liLSHBU-9vAAAlnMeVNR4822.png
  编译安装nginx
https://s3.运维网.com/wyfs02/M02/9B/5A/wKioL1liLSqBFE_8AAAaqEHu3Vs220.png
  建立测试nginx页面,启动nginx服务,查看nginx端口是否启动
https://s4.运维网.com/wyfs02/M01/9B/5A/wKioL1liLUChD1qZAABURUXSWxM783.png
  设置iptables防火墙策略,允许80号端口通过
https://s5.运维网.com/wyfs02/M01/9B/5A/wKiom1liLUrB7XbOAAAStx0R89E520.png
  注:配置nginx1服务器跟上面nginx2配置一样,按照上面步骤执行就可以
  使用客户机访问nginx两台服务器
https://s2.运维网.com/wyfs02/M02/9B/5A/wKiom1liLViB32yVAAA_2GRcbJI077.png
https://s1.运维网.com/wyfs02/M02/9B/5A/wKioL1liLWGB-8bNAAA_teKqh8A388.png
  编译安装haproxy
  搭建本地yum仓库安装haproxy依赖包
https://s2.运维网.com/wyfs02/M00/9B/5A/wKiom1liLWuh9Z4JAAAcJgREg1c712.png
https://s4.运维网.com/wyfs02/M01/9B/5A/wKioL1liLXbBaMkoAAAPPhgDbzs963.png
  tar haproxy软件包,编译安装
https://s5.运维网.com/wyfs02/M00/9B/5A/wKioL1liLX_yt-ILAAAYvM9YkAE828.png
  TARGET=linux26代表64位操作系统
  建立haproxy配置文件
https://s2.运维网.com/wyfs02/M02/9B/5A/wKiom1liLYjT8pK5AAAd3AfXdS0844.png
  配置haproxy服务器文件配置文件主要分为global全局配置、defaults默认配置、listen应用组件配置
  配置haproxy文件、创建自启动脚本、设置软连接
https://s5.运维网.com/wyfs02/M01/9B/5A/wKioL1liLZ6h4tKBAAAj2SPoZAQ967.png
  haproxy.cfg配置文件内容如下:
  global
        log 127.0.0.1   local0配置日志记录,local0为日志设备,默认存放在系统日志中
        log 127.0.0.1   local1 noticenotice为日志级别,通常为24个级别
        #log loghost    local0 info   
        maxconn 4096            最大连接数
        #chroot /usr/share/haproxy   
        uid 99                     用户uid
        gid 99                     用户uid
        daemon
        #debug
        #quiet
  
  defaults
        log   global            定义日志为globel配置中的日志定义
        mode    http            模式为http
        optionhttplog         采用http日志格式记录日志
        optiondontlognull      
        retries 3            检查节点失败次数,连续达到三次失败,会认为节点不可用
        maxconn 2000       最大连接数
        contimeout      5000   连接超时时间
        clitimeout      50000   客户端超时时间
         srvtimeout      50000   服务器超时时间
         option httpclose
  listenwebcluster 0.0.0.0:80    定义一个webcluster应用
        option httpchk GET /index.html检查服务器的index.html
        balance roundrobin            负载均衡调度算法使用轮询算法
        server inst1 192.168.1.20:80 check inter 2000 fall 3   定义的在线节点
        server inst2 192.168.1.30:80 check inter 2000 fall 3   如果在后面加bachak就成为备份节点
  启动haproxy服务,关闭防火墙或配置策略
https://s4.运维网.com/wyfs02/M02/9B/5A/wKioL1liLavgyXX1AAAnm4Qh920931.png
  在客户机上测试web群集是否实现高性能,高可用(把nginx1宕掉)
https://s4.运维网.com/wyfs02/M02/9B/5A/wKioL1liLbXxnb1ZAABBUyl791w505.png
https://s1.运维网.com/wyfs02/M00/9B/5A/wKioL1liLb7Rqm-iAABCX3eWdFE476.png
  配置haproxy日志
  Haproxy的日志默认是保存到系统的syslog中,查看起来不方便,所以我们在生产环境中可以将日志单独存储到不同的文件中,配置如下
  首先修改配置文件,主要改下面的部分
https://s5.运维网.com/wyfs02/M00/9B/5A/wKioL1liLcfTOaDZAAAzAdYW8LY459.png
  然后修改rsyslog配置,将haproxy相关的配置独立定义到haproxy.conf,并放到/etc/rsyslog.d下,rsyslog启动时会自动加载此目录下所有的配置文件
https://s3.运维网.com/wyfs02/M01/9B/5A/wKiom1liLdKB5MrOAAAcHLVxYH0168.png
  配置内容如下:
  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
  $ ~
  重启rsyslog服务,并且查看haproxy访问信息
https://s3.运维网.com/wyfs02/M01/9B/5A/wKiom1liLd3jq7_4AAAWq7G4y4k341.png
  




页: [1]
查看完整版本: Haproxy实现大并发web高可用群集部署