nihaogirl 发表于 2019-1-1 09:50:06

haproxy群集搭建web群集

                        haproxy群集调度器搭建web群集
  1:haproxy调度器是目前市场上比较流行的群集调度器,当然调度器有好多种类:lvs、nginx、和haproxy,接下来对它们进行比较看看它们的优缺点:
  lvs:工作在七层模型的4层传输层:根据ip+端口进行访问;不考虑访问的内容,可以任意访问,基于ip地址,能实现所有应用构建的群集,性能好,可以和keepalived完美结合。稳定性能好。健康检查节点服务器性能较好;搭建时结构相对复杂
  nginx:工作在7层应用层,根据内容、ip网页进行给用户分配内容,健康检查节点服务器功能较弱,要配合upstream模块可对群集进行管理
  haproxy:同样也工作在7层的程序,但它的配置简单,也可以和keepalived完美结合
  2:haproxy对http的请求:
  分为两种方式:
  GET:提交用户的访问,属于明文提交,提交内容不得超过8kb,安全性差
  POST: 属于加密传输;安全性较好
  通过访问一般反馈给客户端的状态码为:(200.301)如果返回的是(400、500)表示发生异常或者错误
  3:负载均衡群集的调度算法(lvs、nginx、harpoxy常用)
  (1)RR:轮询调度算法;根据节点服务器的权重轮询分配访问请求
  (2)LC:最小连接数算法;根据节点服务器的连接数多少分配给连接数最少的节点服务器
  (3)SH: 基于来源访问调度算法法;根据实际环境情况,对访问客户进行有选择的进行连接节点服务器
  当然还有许多的web群集调度器;如梭子鱼、绿盟等
  4:本次使用的环境案例是两台web服务和一台harpoxy服务器
  
  
  编译安装Haproxy
  #yum-yinstall pcre-develbzip2-devel 解决依赖关系安装关系库
   https://s1.运维网.com/wyfs02/M02/92/4B/wKiom1j9-azwmh6bAAAGekE5HYg626.png-wh_500x0-wm_3-wmp_4-s_1806203682.png
  # tar xf /mnt/haproxy-1.4.24.tar.gz -C /usr/src
  https://s5.运维网.com/wyfs02/M01/92/4A/wKioL1j9-cTQwYPWAAAHAopdSAo913.png-wh_500x0-wm_3-wmp_4-s_1712478285.png
  # cd /usr/src/haproxy-1.4.24
  #make TARGET=linux26使用linux的2.6版本内核
  #make install
  https://s5.运维网.com/wyfs02/M00/92/4B/wKiom1j9-djyrgOyAAAGK1ZHips895.png-wh_500x0-wm_3-wmp_4-s_2936520773.png https://s3.运维网.com/wyfs02/M00/92/4A/wKioL1j9-erhQEQLAAAFSyAoSGM039.png-wh_500x0-wm_3-wmp_4-s_988620049.png
  haproxy服务器配置
  (1)、建立haproxy的配置文件
  #mkdir   /etc/haproxy
  https://s2.运维网.com/wyfs02/M01/92/4B/wKiom1j9-gSzr4XBAAAF-myuvNI876.png-wh_500x0-wm_3-wmp_4-s_649190016.png
  #cpexamples/haproxy.cfg   /etc/haproxy/    将haproxy文件的模板复制的/etc/haproxy目录中文以后的修改增加便捷
  https://s3.运维网.com/wyfs02/M02/92/4B/wKiom1j9-hjThKukAAAIclChcWc833.png-wh_500x0-wm_3-wmp_4-s_3310878599.png
  
  #vim   /etc/haproxy/haproxy.cfg   文件的配置内容有三部分 global全局配置、defaults默认配置、listen应用组件配置配置内容如下
  global
        log 127.0.0.1   local0
        log 127.0.0.1   local1 notice
        #log loghost    local0 info
        maxconn 4096
  #       chroot /usr/share/haproxy
        uid 99
        gid 99
        daemon
        nbproc 4
        #debug
        #quiet
  https://s3.运维网.com/wyfs02/M01/92/4B/wKiom1j9-i3yXjIbAAA-K3XoxEo295.png-wh_500x0-wm_3-wmp_4-s_3616989030.png
  
  defaults
        log   global
        mode    http
        optionhttplog
        optiondontlognull
        retries 3
  #       redispatch
        maxconn 2000
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000
  https://s4.运维网.com/wyfs02/M00/92/4B/wKiom1j9-kGSvYr9AABBbgOLYCI386.png-wh_500x0-wm_3-wmp_4-s_4021609796.png
   listen webcluster 0.0.0.0:80
  option httpchk GET /index.html
  balance roundrobin
  server inst1 192.168.2.2:80 check inter 2000 fall 3
  server inst2 192.168.2.3:80 check inter 2000 fall 3
  https://s1.运维网.com/wyfs02/M02/92/4B/wKiom1j9-lPBETfdAAArbBZPvJw984.png-wh_500x0-wm_3-wmp_4-s_4269382982.png
  (2)创建自启动脚本
  #cp/usr/src/haproxy-1.4.24/examples/haproxy.init /etc/init.d/haproxy
  https://s2.运维网.com/wyfs02/M00/92/4B/wKiom1j9-mWjXD9HAAAFjbEjbB0922.png-wh_500x0-wm_3-wmp_4-s_4032578166.png
  # ln -s /usr/local/sbin/haproxy/usr/sbin/haproxy 做软连接,在环境变量中使用haproxy
  https://s2.运维网.com/wyfs02/M00/92/4A/wKioL1j9-neCV6b4AAAEOE6RdsE963.png-wh_500x0-wm_3-wmp_4-s_1808225347.png
  # chmod+x /etc/init.d/haproxy 给文件可执行权限
  https://s3.运维网.com/wyfs02/M02/92/4B/wKiom1j9-o-Akl5QAAAD3XJwI6U043.png-wh_500x0-wm_3-wmp_4-s_3792896073.png
  #servicehaproxy   start   
  #serviceiptablesstop
  https://s3.运维网.com/wyfs02/M02/92/4B/wKiom1j9-qHyDpuCAAAPbaAc64w772.png-wh_500x0-wm_3-wmp_4-s_3568762366.png
  (3)测试web群集web1网页内容为howare youweb2 内容为welcome to beijing 为了测试负载均衡所以将网页内容设置为不同
https://s1.运维网.com/wyfs02/M02/92/4A/wKioL1j9-rWDLu-9AABofGkYO7Y496.png-wh_500x0-wm_3-wmp_4-s_1514275142.pnghttps://s3.运维网.com/wyfs02/M00/92/4B/wKiom1j9-sqCJX61AACRdv_840w485.png-wh_500x0-wm_3-wmp_4-s_1410148361.png
  (4)haproxy的日志   ;由于haproxy的日志存放在系统日志中不方便管理所以将日志的等级分为不同的日志从放目录:
创建一个关于haproxy的目录为以后的管理方便:
touch/etc/rsyslog.d/haproxy.conf的文件
https://s3.运维网.com/wyfs02/M02/92/4B/wKiom1j9-tyzunvdAAAEbDP8BxI521.png-wh_500x0-wm_3-wmp_4-s_1291816181.png
在配置/etc/rsyslog.d/haproxy.conf文件之前先修改/etc/haproxy/haproxy.cfg文件内容如下:完成后重启haproxy服务
https://s2.运维网.com/wyfs02/M00/92/4A/wKioL1j9-u6gohNoAAAZ09mDXzU977.png-wh_500x0-wm_3-wmp_4-s_182005952.png
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
& ~https://s2.运维网.com/wyfs02/M00/92/4B/wKiom1j9-wHD5r6QAAA_3lot3UE563.png-wh_500x0-wm_3-wmp_4-s_1968164274.png
配置完成后要重新启动rsyslog服务   servicersyslogrestart
https://s4.运维网.com/wyfs02/M02/92/4B/wKioL1j9-xLCg3RdAAAHs3zXbtw832.png-wh_500x0-wm_3-wmp_4-s_2317951366.png
测试日志信息
# tail -f /var/log/haproxy/haproxy-info.log   tail -f 表示动态刷新,查看
然后在客户机上访问,观察日志
https://s4.运维网.com/wyfs02/M00/92/4B/wKioL1j9-ySRkD9LAAAmVBSVdY0020.png-wh_500x0-wm_3-wmp_4-s_358583073.png
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  




页: [1]
查看完整版本: haproxy群集搭建web群集