当前位置: 首页 > news >正文

haproxy

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

                        HAProxy
                    
HAProxy 提供高可用性、负载均衡以及基于 TCP 和 HTTP 应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy 特别适用于那些负载特大的 web 站点, 这些站点通常又需要会话保持或七层处理。HAProxy 运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整 合进您当前的架构中, 同时可以保护你的 web 服务器不被暴露到网络上。

1)配置haproxy
    haproxy-1.4.23.tar.gz
    yum install rpm-build pcre-devel -y
    
    cd /etc/haproxy/
    vim haproxy.cfg
    配置文件如下
    # this config needs haproxy-1.1.28 or haproxy-1.2.1

    global
        log 127.0.0.1   local0
        #log 127.0.0.1   local1 notice    
        log localhost    local0 info    日志等级,有erro,debug,waring等等
        maxconn 4096            最大链接量
        chroot /usr/share/haproxy
        uid 99
        gid 99
        daemon
        #debug
        #quiet

    defaults
        log     global
        mode    http
        option  httplog        
        option  dontlognull    
        retries 3        重复链接三次都失败,则说明此服务器不可用
        option redispatch    如果一台real server坏掉,让其它好的节点接管
        maxconn 2000
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000

    listen  www.semir.org *:80    
        cookie  SERVERID rewrite                            服务ID
        balance roundrobin                                负载算法
        server  web1 192.168.0.62:80 cookie app1inst1 check inter 2000 rise 2 fall 5    real server1
        server  web2 192.168.0.236:80 cookie app1inst2 check inter 2000 rise 2 fall 5    real server2

    listen stats_auth 192.168.0.209:8080    这里是对监控页面所做的加密
        stats enable            
        stats uri /status        监控页面
        stats auth semir:westos        监控帐号和密码
        stats refresh 5s         刷新频率
    
    # mkdir /usr/share/haproxy
    #/etc/init.d/haproxy start

    配置日志信息
    vim /etc/rsyslog.conf
        # Provides UDP syslog reception
        #$ModLoad imudp
        #$UDPServerRun 514            #打开这两行#

        local0.*                                                /var/log/haproxy.log

2)通过keepalive来调度haproxy
    首先配置keepalive
    ! Configuration File for keepalived

    vrrp_script check_haproxy {
        script "/opt/check_haproxy.sh    #听过调用脚本来控制haproxy的状态
        interval 2            
        weight 2
    }
    global_defs {
       notification_email {
         root@localhost  
       }
       notification_email_from keepalive@server62.exaple.com
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id LVS_DEVEL
    }

    vrrp_instance VI_1 {
        state BACKUP
        interface eth0
        virtual_router_id 111
        priority 50
        advert_int 1
        authentication {
        auth_type PASS
        auth_pass 1111
        }
        virtual_ipaddress {
        192.168.0.68
        }
        track_script {

        check_haproxy           #这里调用刚才建立那个资源
    }
    }

vim /opt/check_haproxy.sh
    #!/bin/bash

    [ -f /var/run/haproxy.pid ] || /etc/init.d/haproxy restart &> /dev/null #通过查看进程pid来判断haproxy的状态,
    
    if [ $? -ne 0 ];
    then
        /etc/init.d/keepalived stop &> /dev/null            #如果haproxy没有正确启动的话,那么keepalive也会被关掉
    fi


转载于:https://my.oschina.net/u/1176157/blog/149305

相关文章:

  • U-boot在S3C2440上的移植详解(四)
  • [转]大白话系列之C#委托与事件讲解(三)
  • C语言中的内存管理
  • 瀑布模型中的纠结
  • php生成UUID
  • u-boot-2011.06在基于s3c2440开发板的移植之引导内核与加载根文件系统
  • 自动YUM安装
  • HP iLo2 试用序列号
  • Javascript疑问二:匿名函数
  • 我们应该怎样获得加薪
  • Digester学习笔记(三)转载
  • 【C语言】09条件编译
  • c# winform项目用到的部分知识点总结
  • Intellij IDEA 快捷键整理(TonyCody)
  • C optimization tutorial 翻译 C语言优化教程(一)
  • 时间复杂度分析经典问题——最大子序列和
  • [deviceone开发]-do_Webview的基本示例
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 2017届校招提前批面试回顾
  • HashMap剖析之内部结构
  • HTML-表单
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • java中的hashCode
  • KMP算法及优化
  • Shell编程
  • SpringBoot几种定时任务的实现方式
  • Webpack 4x 之路 ( 四 )
  • windows下如何用phpstorm同步测试服务器
  • 编写符合Python风格的对象
  • 从tcpdump抓包看TCP/IP协议
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 关于使用markdown的方法(引自CSDN教程)
  • 近期前端发展计划
  • 前端知识点整理(待续)
  • 前端自动化解决方案
  • 容器服务kubernetes弹性伸缩高级用法
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 7行Python代码的人脸识别
  • ​批处理文件中的errorlevel用法
  • ​一些不规范的GTID使用场景
  • # 数据结构
  • #前后端分离# 头条发布系统
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (十)c52学习之旅-定时器实验
  • (一)基于IDEA的JAVA基础1
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)大道至简,职场上做人做事做管理
  • ******之网络***——物理***
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .net反混淆脱壳工具de4dot的使用
  • .net连接MySQL的方法