haproxy是一款功能强大、灵活好用反向代理软件,提供了高可用、负载均衡、后端服务器代理的功能,它在7层负载均衡方面的功能很强大(支持 cookie track, header rewrite等等),支持双机热备,支持虚拟主机,拥有非常不错的服务器健康检查功能,当其代理的后端服务器出现故障, HAProxy会自动将该服务器摘除,故障恢复后再自动将该服务器加入;同时还提供直观的监控页面,可以清晰实时的监控服务集群的运行状况。

在四层(tcp)实现负载均衡的软件:
    lvs------>重量级
    nginx------>轻量级,带缓存功能,正则表达式较灵活
    haproxy------>模拟四层转发,较灵活
    在七层(http)实现反向代理的软件:
    haproxy------>天生技能,全面支持七层代理,会话保持,标记,路径转移;
    nginx------>只在http协议和mail协议上功能比较好,性能与haproxy差不多;
    apache------>功能较差

haproxy的配置文件分为四个部分:
        全局配置:
        global:  全局配置段
        代理配置:
        default: 默认配置----->所有在backend、frontend、linsten中相同内容可以在此定义;
        frontend:前段配置----->定义前端套接字,接受客户端请求;
        backend: 后端配置----->定义后端分配规则,与后端服务器交互;
        listen:  绑定配置----->直接将指定的客户端与后端特定服务器绑定到一起;

实验环境:rhel6.5 selinux and iptables disabled
         172.25.85.2       server2.example.com 
         172.25.85.3       server3.example.com

172.25.85.7       server7.example.com

172.25.85.8       server8.example.com

1.haproxy的安装和配置:
  在server3和server2上安装:
  yum install haproxy -y
  /etc/init.d/haproxy start

在server2上:
  vim /etc/haproxy/haproxy.cfg

需要注释掉一部分:

stats uri /status
stats  auth admin:westos
frontend  westos *:80default_backend   web
backend  webbalance roundrobinserver  web1 172.25.31.10:80 check  weight 1server  web2 172.25.31.11:80 check  weight  1 server backup   127.0.0.1:8080  backupserver backup 127.0.0.1:8080 backup

/etc/init.d/haproxy  reload

检测:
   打开server7和server8上的httpd:

在浏览器中打开172.25.85.2
  交替出现 server7.linux.org  server8.westos.org

在浏览器中打开172.25.85.2/status

检测2:
   关闭server7和server8上的httpd
   在server2上:
   echo server2.zhangweijing  > index.html  
   vim /etc/httpd/conf/httpd.conf

listen 8080

/etc/init.d/httpd start

在浏览器中打开172.25.85.2:

2. server2:
   tail -f /var/log/messages
   vim /etc/rsyslog.conf

$ModLoad imudp
$UDPServerRun 514
local2.*                                     /var/log/haproxy.log

/etc/init.d/rsyslog reload
     tail -f /var/log/messages
     tail -f /var/log/haproxy.log

3. server2:
   vim /etc/haproxy/haproxy.cfg

增加 stats  auth admin:westos/etc/init.d/haproxy  reload

在浏览器中打开172.25.85.2/status

4.1  server2:
  vim /etc/haproxy/haproxy.cfg

增加

frontend westos *:80acl bad src 172.25.85.250block if baderrorloc  403     http://172.25.85.2:8080default_backend web
backend webbalance roundrobinserver  web1 172.25.85.7:80 checkserver  web2 172.25.85.8:80 checkserver backup 127.0.0.1:8080 backup

/etc/init.d/haproxy reload

在浏览器中打开http://172.25.85.2:8080/

4.2  server2:

vim /etc/haproxy/haproxy.cfg

frontend westos *:80acl bad src 172.25.85.250#block if bad#errorloc  403     http://172.25.85.2:8080redirect location http://172.25.85.3:80 if baddefault_backend web
backend webbalance roundrobinserver  web1 172.25.85.7:80 checkserver  web2 172.25.85.8:80 checkserver backup 127.0.0.1:8080 backup

/etc/init.d/haproxy reload
      在浏览器中打开http://172.25.85.3

4.3  server2:

vim /etc/haproxy/haproxy.cfg

frontend westos *:80acl bad src 172.25.85.250#block if bad#errorloc  403     http://172.25.85.2:8080#redirect location http://172.25.85.3:80 if bad# http-request deny if denyfile baddefault_backend web
backend webbalance roundrobinserver  web1 172.25.85.7:80 checkserver  web2 172.25.85.8:80 checkserver backup 127.0.0.1:8080 backup

/etc/init.d/haproxy reload

  在server7:
    cd /var/www/html/
    mkdir admin
    cd admin/
    echo server7.server7 > index.html

在server8:
    cd /var/www/html/
    mkdir admin
    cd admin/
    echo server8.server8 > index.html

     在浏览器中打开http://172.25.85.2/admin/
    交替出现 server7.server7 server8.server8

4.4 server2:
    vim /etc/haproxy/haproxy.cfg

frontend westos *:80acl bad src 172.25.85.250acl denyfile path /admin/#block if bad#errorloc  403     http://172.25.85.2:8080#redirect location http://172.25.85.3:80 if badhttp-request deny if denyfile baddefault_backend web
backend webbalance roundrobinserver  web1 172.25.85.7:80 checkserver  web2 172.25.85.8:80 checkserver backup 127.0.0.1:8080 backup

/etc/init.d/haproxy reload

在浏览器中打开http://172.25.85.2/admin/

5.server2:
        vim /etc/haproxy/haproxy.cfg

frontend westos *:80acl bad src 172.25.85.250acl denyfile path /admin/#block if bad#errorloc  403     http://172.25.85.2:8080#redirect location http://172.25.85.3:80 if bad#http-request deny if denyfile badacl url_static       path_beg       -i   /static  /p_w_picpaths /javascript /stylesheetsacl url_static       path_end       -i .jpg .gif .png .css .jsuse_backend p_w_picpaths    if url_staticdefault_backend  upload
backend  p_w_picpathsbalance roundrobinserver  web1 172.25.85.7:80 checkserver backup 127.0.0.1:8080 backup
backend uploadserver  web2 172.25.85.8:80 check

/etc/init.d/haproxy reload

    server7:
    
    cd /var/www/html/
    mkdir p_w_picpaths             ##给这个目录下方一个小图片redhat.jpg
    
 
   在浏览器中打开:http://172.25.85.2/p_w_picpaths/redhat.jpg

6.server2:
  vim /etc/haproxy/haproxy.cfg

frontend westos *:80acl bad src 172.25.85.250acl denyfile path /admin/#block if bad#errorloc  403     http://172.25.85.2:8080#redirect location http://172.25.85.3:80 if bad#http-request deny if denyfile badacl url_static       path_beg       -i   /static  /p_w_picpaths /javascript /stylesheetsacl url_static       path_end       -i .jpg .gif .png .css .jsacl read method GETacl read method  HEADacl write method PUTacl write method  POST
#     use_backend p_w_picpaths    if url_static
#        use_backend p_w_picpaths if readuse_backend  upload  if writedefault_backend  p_w_picpaths
backend  p_w_picpathsbalance roundrobinserver  web1 172.25.85.8:80 check
backend  uploadserver  web1 172.25.85.7:80 check

/etc/init.d/haproxy reload

在server8:
  cd /var/www/html   ##将upload文件放在这个目录下
  chown 777  upload

cd  /var/www/html /upload

mkdir upload

在浏览器中打开172.25.85.2/upload就可以上传文件了。

转载于:https://blog.51cto.com/nanyoujiayu/1834579

企业之haproxy相关推荐

  1. 架构师课程之-haproxy专业级负载均衡软件权威讲解

    老男孩培训顶级架构师课程[企业场景haproxy专业负载均衡架构方案]教学大纲 2014/4/12日激情开讲! 伙伴们,既然选择了远方,就只顾风雨兼程! 老男孩老师已经做好了自断筋脉,把全部功力都传给 ...

  2. 计算机集群 -- Linux 集群技术概述

    Linux 集群技术概述 一.什么是集群 ? 二.常见集群架构 三.为什么要使用集群 ? 四.集群分类 1.负载均衡集群 2.高可用集群 3.高性能计算集群 4.网格计算 五.常用集群软.硬件 一.什 ...

  3. 拉开大变革序幕(中):Docker 场景化尝试

    runC 进行时 由Docker公司和CoreOS,加上一些顶牛的大公司,如Google,IBM,Microsoft,EMC,Amazon,思科,华为等等,在Linux基金会的支持下于2015年6月份 ...

  4. 企业运维之七层负载均衡--Haproxy

    企业运维之七层负载均衡--Haproxy 1. 基础介绍 2. 负载均衡的类型 3. Haproxy 的部署 3.1 Haproxy 实现负载均衡和监控 3.2 日志采集 3.3 调度算法 3.5 设 ...

  5. 企业集群平台架构设计与实现(lvs/haproxy/keepalived)-高俊峰-专题视频课程

    企业集群平台架构设计与实现(lvs/haproxy/keepalived)-4979人已学习 课程介绍         爱维Linux独家出品,集合目前热门的集群应用技术LVS/HAPROXY/Kee ...

  6. haproxy keepalived_企业实战KeepAlived+Redis+Haproxy实现主从热备、负载均衡、秒级切换...

    最近公司生产环境需要做一个Redis+Keepalived+Haproxy的集群架构,分别用六个端口,实现多路复用,最终实现主从热备.负载均衡.秒级切换. 一,Redis6.06集群官网部署,这里不再 ...

  7. Linux之企业实训篇——haproxy与pacemaker实现高可用负载均衡

    注:haproxy与fence的相关配置可以参照一下我之前写的博客 >_< ~~~ 一.简介 Pacemaker是一个集群资源管理器.它利用集群基础构件(OpenAIS,heartbeat ...

  8. fence机制 linux_Linux的企业-高可用集群Haproxy+corosync+pacemaker+fence

    一.Haproxy简介 Haproxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性.负载均衡,以及基于TCP和HTTP的应用程序代理. HAProxy特别适用于那些负载特大的web站点, ...

  9. 【APP Web架构】企业web高可用集群实战之haproxy篇续(二)

    第三部分:lnmp集群部署 承接上篇:http://linuxops.blog.51cto.com/2238445/899637 请参考本人的以下文章: http://linuxops.blog.51 ...

  10. 烂泥:haproxy学习之手机规则匹配

    2019独角兽企业重金招聘Python工程师标准>>> 本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb. 今天我们来介 ...

最新文章

  1. python3.7和3.8的区别-Python 3.8 有什么新变化
  2. POJ3189二分最大流(枚举下界,二分宽度,最大流判断可行性)
  3. 概率论与数理统计中的算子半群 第一讲 Banach-Steinhaus定理1 Baire‘s Category与Banach-Steinhaus定理的证明
  4. 116. Leetcode 1143. 最长公共子序列 (动态规划-子序列问题)
  5. Java的二十三种设计模式(原型模式(Prototype))
  6. 关于文档的基本操作---ElasticSearch
  7. yearProgress.vue
  8. tiny4412移植tslib库
  9. 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
  10. 【转】Android Fragment中使用SurfaceView切换时闪一下黑屏的解决办法
  11. 14、数 据 库:破解还原Access数据库密码
  12. 利用树莓派完成POS58打印机的无驱动打印(初学者)
  13. 转正述职报告 实习转正 工作汇报 述职模板免费下载_PPTX图片设计素材_包图网888pic.com...
  14. python 循环写入excel_用PYTHON将“for”循环的输出写到excel中
  15. 新建tag 查看本地Tag 查看远端Tag 基于远端Tag新建分支 删除远端Tag 等操作
  16. OpenStack集成SDN控制器
  17. 支付宝与工行“决裂”,备付金存管行易主建行
  18. 深度学习、Linux基础、语音技术等电子书籍分享,仅供学习
  19. IE8打不开网页提示sysfader错误的解决办法
  20. 511遇见易语言取数组成员数和取数组下标

热门文章

  1. Redis 安装,主从配置及Sentinel配置自动Failover
  2. jsonp多次请求报错 not a function的解决方法
  3. 编译SONiC交换机镜像(转,参考2)
  4. linux内核相关的两个问题
  5. 数据库程序设计复习资料
  6. 倾心家教安卓案例开发代码_你或许从未听过的20个安卓开发工具
  7. vscode配置c++11
  8. 深度模型 loss为nan解决方案详解
  9. java 中== equals hashcode源码剖析
  10. Hadoop-Streaming实战经验及问题解决方法总结