当前位置:   article > 正文

Linux系统架构--Haproxy服务代理Nginx群集_linux高级管理群集haproxy

linux高级管理群集haproxy

Haproxy简介

  • Haproxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用的程序代理。
  • Haproxy特别适用于负载特大的web站点,这些站点通常又需要会话保持或七层处理。Haproxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露在网络上
  • Haproxy实现了一种事件驱动,单一进程模型,此模型支持非常大的并发连接数。多进行或线程模型受内存的限制,系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户空间实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以使每个cpu时间片做更多的工作

Haproxy搭建web群集分析

  • Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具也有很多,比如LVS和Nginx.相对而言,LVS的性能最好,但是搭建相对复杂,Nginx的upstream模块支持群集功能,但是对群集节点的健康检查功能不强,性能没有Haproxy好
  • Haproxy官网是http://haproxy.1wt.eu/
  •  目前常见的web群集调度器分为软件和硬件两类,软件通常使用开源的LVS、Haproxy、Nginx,硬件一般使用比较多的是F5,当然国内也有一些产品,比如:梭子鱼、绿盟等。

搭建Nginx和Haproxy群集架构

实验环境:

类型IP地址系统软件包
Haproxy调度器192.168.179.148centos7haproxy-1.5.19.tar.gz
Nginx服务器1192.168.179.132centos7nginx-1.12.2.tar.gz
Nginx服务器2192.168.179.228centos7nginx-1.12.2.tar.gz

客户

 

   
  • 配置两台Nginx服务
  1. //解压缩包
  2. tar zxvf nginx-1.12.2.tar.gz -C /opt
  3. //创建用户
  4. useradd -M -s /sbin/nologin nginx
  5. //安装环境依赖包
  6. yum install gcc gcc-c++ pcre pcre-devel zlib-devel -y
  7. //配置
  8. ./configure \
  9. --prefix=/usr/local/nginx \
  10. --user=nginx \
  11. --group=nginx \
  12. --with-http_stub_status_module
  13. //创建软连接,便于管理服务命令
  14. ln -s /usr/local/nginx/sbin/* /usr/local/sbin
  15. //便于service管理服务
  16. vim /etc/init.d/nginx
  17. #!/bin/bash
  18. # chkconfig: - 99 20
  19. # description: Nginx Service Control Script
  20. PROG="/usr/local/nginx/sbin/nginx"
  21. PIDF="/usr/local/nginx/logs/nginx.pid"
  22. case "$1" in
  23. start)
  24. $PROG;;
  25. stop)
  26. kill -s QUIT $(cat $PIDF);;
  27. restart)
  28. $0 stop
  29. $0 start;;
  30. reload)
  31. kill -s HUP $(cat $PIDF);;
  32. *)
  33. exit 1
  34. esac
  35. exit 0
  36. //添加执行权限
  37. chmod +x /etc/init.d/nginx
  38. //添加为系统服务
  39. chkconfig --add nginx
  40. //创建站点目录
  41. cd /usr/local/nginx/html
  42. vim test.html
  43. <h1>this is web1</h1>
  44. <h1>this is web2</h1>
  45. //启动服务
  46. service nginx start
  47. //验证服务
  48. netstat -ntap | grep nginx

 

  • 配置haproxy服务
  1. yum install pcre-devel pcre bzip2-devel gcc gcc-c++ make -y
  2. //解压缩包
  3. tar zxvf haproxy-1.5.19.tar.gz -C /opt/
  4. //安装配置
  5. make TARGET=linux26
  6. make install
  7. //创建工作目录
  8. mkdir /etc/haproxy
  9. cp examples/haproxy.cfg /etc/haproxy/
  10. //修改配置文件
  11. vim /etc/haproxy/haprox.cfg
  12. 注释 #chroot /usr/share/haproxy
  13. 注释 #redispatch
  14. 删除所有listen
  15. 添加
  16. listen webcluster 0.0.0.0:80
  17. option httpchk GET /test.html
  18. balance roundrobin
  19. server inst1 192.168.179.228:80 check inter 2000 fall 3
  20. server inst1 192.168.179.132:80 check inter 2000 fall 3
  21. //启动脚本
  22. cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
  23. chmod +x /etc/init.d/haproxy
  24. chkconfig --add /etc/init.d/haproxy
  25. ln -s /usr/local/sbin/haproxy /usr/sbin/
  26. //启动服务
  27. service haproxy start
  28. netstat -ntap | grep haproxy
  29. //访问代理服务器IP地址haproxy
  30. IP/test.html

  • 日志定义
  1. vim /etc/haproxy/haproxy.cfg
  2. global中更改
  3. log /dev/log local0 info
  4. log /dev/log local0 notice
  5. service haproxy restart
  6. touch /etc/rsyslog.d/haproxy.conf
  7. vim /etc/rsyslog.d/haproxy.conf
  8. if ($programname == 'haproxy' and $syslogseverity-text == 'info')
  9. then -/var/log/haproxy/haproxy-info.log
  10. &~
  11. if ($programname == 'haproxy' and $syslogseverity-text == 'notice')
  12. then -/var/log/haproxy/haproxy-notice.log
  13. &~
  14. //重启日志服务
  15. systemctl restart rsyslog.service

 

 

 

 

 

 

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/987870
推荐阅读
相关标签
  

闽ICP备14008679号