Centps7 源码编译安装haproxy

Centos7 源码编译安装haproxy

操作环境:
一台haproxy主机地址为:192.168.80.100
两台web服务器地址分别为:192.168.80.102
192.168.80.103

192.168.80.100:
安装haproxy:

源码编译安装haproxy,需要软件包。

yum install -y pcre-devel bzip2-devel gcc gcc-c++ make

tar xzvf haproxy-1.5.15.tar.gz  -C  /opt   --解压软件包的 /opt/下

cd /opt/haproxy-1.5.15
make TARGET=linux26  PREFIX=/usr/local/haproxy     //标识64为系统
make install PREFIX=/usr/local/haproxy           --安装路径

mkdir /etc/haproxy        --创建配置文件目录

useradd -s /sbin/nologin -M  haproxy    --创建一个不可登录系统,且没有家目录的用户

————————到此安装

haproxy完成——————

——

HAProxy配置文件详解
其配置文件主要由五个部分组成,分别为global部分,defaults部分,frontend部分,backend部分,liste部分。
1)global部分
用于设置全局配置参数
2) defaults部分
默认参数的配置部分。
3) frontend部分
用于设置接收用户请求的前端虚拟节点。frontend可以根据ACL规则直接指定要使用的后端backend。
4) backend部分
用于设置集群后端服务集群的配置,也就是添加一组真实服务器,以处理前端用户的请求。

5) listen部分此部分是frontend和backend部分的结合体。配置此部分不需要在配置

cp /opt/haproxy-1.5.15/examples/haproxy.cfg /etc/haproxy/

vi /etc/haproxy/haproxy.cfg

--------------全局配置----------------
global
    log 127.0.0.1   local0  notice        #配置全局日志记录,local0为日志设备,notice为输出的日志级别,表示使用本地(127.0.0.1)机器上的rsyslog服务中的local0设备记录日志等级为notice的日志。
    #log loghost    local0 info #定义haproxy 日志级别
     maxconn 20480        #可以接收的最大并发连接数
 #chroot  /usr/local/haproxy-1.5.15     #工作目录
    pidfile  /var/run/haproxy.pid     #haproxy 进程PID文件
    maxconn  4000         //最大连接数
    user   haproxy       #运行的程序用户
    group   haproxy   #运行的程序用户组
    daemon           //创建1个进程进入deamon模式运行,以后台形式运行harpoxy

#---------------------------------------------------------------------
#common defaults that all the ‘listen‘ and ‘backend‘ sections will
#use if not designated in their block
#---------------------------------------------------------------------
defaults
    mode   http       //所处理的类别,tcp是四层,http是七层,health只会返回OK,若是混合模式则mode不需要设置
    log    global        //定义日志,采用全局定义
    option  dontlognull    //不记录健康检查的日志信息
    option  httpclose     //每次请求完毕后主动关闭http通道
    option  httplog    //日志类别为http日志格式;如果是混合模式,此处还需要加上tcpclog
    #option  forwardfor    //后端服务器可以从Http Header中获得客户端ip
    option  redispatch     //serverId对应的服务器挂掉后,强制定向到其他健康的服务器
    balance roundrobin    #设置默认负载均衡方式,轮询方式
    timeout connect 10s  //连接超时
    timeout client 10s   //客户端连接超时
    timeout server 10s   //服务器连接超时
    timeout check 10s    //健康检测的超时时间
    maxconn     60000    //最大连接数
    retries     3        //3次连接失败就认为服务不可用
--------------统计页面配置------------------
listen admin_stats       #为haproxy访问状态监控页面配置,取名为admin_stats
    bind 0.0.0.0:8089      //监听端口
    stats enable          //启用监听端口
    mode http         #http的7层模式
    log global         # 继承global中log的定义
    stats uri  /stats     #监控页面的url访问路径,即http://ip/stats访问监控页面
    stats realm Haproxy\ Statistics     #监控页面的密码框提示信息
    stats auth  admin:admin          #监控页面的用户和密码admin,可以设置多个用户名
    #stats hide-version   //隐藏统计页面上HAProxy的版本信息
    stats admin if TRUE    //当通过认证才可管理
    stats refresh 30s    //页面自动刷新时间30s
---------------web设置-----------------------
listen webcluster     #定义webcluster服务器组。
        bind 0.0.0.0:80   #定义haproxy前端部分监听的端口。
        mode http    #http的7层模式
        option httpchk GET /index.html     #心跳检测
        log global    #继承global中log的定义
        maxconn 3000   #server进程可接受的最大并发连接数
        balance roundrobin    #负载均衡的方式:轮询
server web01 192.168.80.102:80 check inter 2000 fall 5
server web02 192.168.80.103:80 check inter 2000 fall 5

注:

后端服务器 web1 和 web2 ,IP 地址分别为 192.168.80.102 和 192.168.80.103
check:对当前server做健康状态检测cp examples/haproxy.init /etc/init.d/haproxy
chmod 755 /etc/init.d/haproxy
chkconfig --add haproxy
inter <delay>:检测之间的时间间隔,默认为2000ms
fall <count>:连续多少次检测结果为“失败”才标记为不可用;默认为3
rise <count>:连续多少次检测结果为“成功”才标记为可用;默认为2

cp examples/haproxy.init /etc/init.d/haproxy
chmod 755 /etc/init.d/haproxy
chkconfig --add haproxy

ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin/haproxy

service haproxy start
service firewalld stop

访问统计页面
在浏览器地址栏:192.168.80.100:8089/stats

192.168.80.102:
配置第一台web服务器

 systemctl  stop firewalld
 setenforce  0
 mount /dev/cdrom  /mnt
  yum  install httpd -y
  vi /etc/httpd/conf/httpd.conf
  cd /var/www/html/
  ls
  echo  "<h1>SERVER  AA</h1>" > index.html
  vi index.html
  systemctl  start httpd
   netstat   -anpt | grep  httpd

192.168.80.103:
配置第二台web服务器

systemctl  stop firewalld
 setenforce  0
 mount /dev/cdrom  /mnt
  yum  install httpd -y
  vi /etc/httpd/conf/httpd.conf
  cd /var/www/html/
  ls
  echo  "<h1>SERVER BB</h1>" > index.html
  vi index.html
  systemctl  start httpd
   netstat   -anpt | grep  httpd


测试haproxy
在浏览器地址栏输入:192.168.80.100:8089/stats

在浏览器地址栏输入:192.168.80.100

原文地址:http://blog.51cto.com/13701082/2341826

时间: 2024-08-08 23:41:31

Centps7 源码编译安装haproxy的相关文章

马哥linux学习笔记:源码编译安装

由于rpm包在作者制作封装的时候已经把程序的一些特性固定了,如果我们根据自己的需求,需要运用程序的一些没有普适性相关特性,就需要下载程序的源码手动编译安装了,这里只是简单的介绍一下C代码的程序包编译安装方法. 为了能更直观的看到源码编译安装的过程,我演示一下在centos7.2环境中编译安装httpd2.2: 首先,编译的前提是得有称手的工具及环境了,编译c源代码就需要用到开发工具,make,gcc了,环境就需要开发库跟头文件了,如果系统中没有这些,就需要yum安装了. 这里我运行yum gro

烂泥:mysql5.0数据库源码编译安装

本文首发于烂泥行天下. 本次实验的mysql.OS相关信息如下: Mysql:5.0.96 OS:centos 32 bit 最近公司要上新的业务,指明数据库使用的是mysql5.0版本.如果是使用rpm包安装的话,那就很简单了.直接使用yum安装即可,命令如下: yum –y install mysql mysql-server Yum方式安装完毕后,直接启动mysql数据库服务即可.如下图: 这样基本上就可以了. 但是这样安装mysql数据库,没有进行定制.比如mysql数据库的数据文件存储

ubuntu 源码编译安装最新的vim 8.0

为什么要源码编译安装VIM? 因为我要安装ycm,ycm要求vim版本为8.0 教程步骤: 1, 核对系统版本 2, 删除系统自带的vim 3, 编译安装vim 4, 检验vim的安装 1,核对系统版本 [email protected]:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.5 LTS Release: 14.04 Codename: tr

详解LAMP源码编译安装

实战:LAMP源码编译安装 家住海边喜欢浪:zhang789.blog.51cto.com 目录 详解LAMP源码编译安装 LAMP简介 一.准备工作 二.编译安装 Apache 三.编译安装 MySQL 四.编译安装 PHP 测试LAMP搭建开源数据web管理程序phpMyadmin 详解LAMP源码编译安装 LAMP简介 LAMP是当下非常流行的一套Web架构,我们可以在GNU/Linux下通过其他人打包的程序包来进行安装; 但是在生产环境中,很多时候都需要我们自己定制安装AMP,编译安装L

centos 6.5源码编译安装subversion 1.8.10

一.简介 CentOS 6.5的yum源可以安装的SVN客户端版本太低了,1.6.11,所以需要升级到1.8.10,而官网有没有找到1.8.10的安装包,只能选择源码编译安装. 二.安装步骤 参考官网:http://svn.apache.org/repos/asf/subversion/trunk/INSTALL 源码下载:http://archive.apache.org/dist/subversion/ 源码编译subversion依赖许多别的工具,比如:apr.apr-util.libto

软件包管理之源码编译安装

编译步骤: 1.#cd SOURCE_CODE 2../configure 作用: 检测编译环境 提供给用户编译配置(通过脚本选项) --help 帮助信息 --prefix=/usr/local/name 安装路径 二进制 /usr/local/name/bin /usr/local/name/libexec不允许自动执行,只能被其他程序调用执行 配置文件 /usr/local/name/conf 库文件 /usr/local/name/lib 帮助文档 /usr/local/name/sha

LAMP纯源码编译安装日志

一.LAMP构架的安装与经验技巧(源码安装好处.是便于管理,可以选定参数,可以使用新版本) 相关软件列表: # ls /soft/ | grep -E "*.gz|*.zip|*.xz|*.bz2"    apr-1.4.5.tar.gz    apr-util-1.3.12.tar.gz    autoconf-2.61.tar.gz    freetype-2.3.12.tar.gz    httpd-2.4.18.tar.bz2    jpegsrc.v6b.tar.gz    

源码编译安装

除了用rpm.yum安装包外,还可以用源码编译安装 源码包:代码可见的,要想在系统里运行,要翻译成机器语言,编译就是翻译的过程. 源码包下载最好去官方网站 以httpd为例 下载地址 以后下载的源码包最好放在/usr/local/src下,目的是为了以后方便维护 有时候,需要去看一下它里面的文件,比如INSTALL  README 安装指引 源码包安装三个步骤: 第一步:   ./configure --help  查看有哪些选项 --prefix   指定安装路径 检查这步操作是否有问题,没问

Atlas2.2源码编译安装

本文主要介绍中间件atlas源码编译安装,由于rpm安装的atlas程序调用时返回的mysql版本为5.0,相应使用低版本的驱动造成时间类型的字段无法支持毫秒级别. 由于需要glib版本要大于2.32以上,centos6系统自带的glib版本为2.28,因此需要重新编译安装2.32以上的glib,这里安装2.34版本的glib需要依赖pcre大于8.31. 一.编译安装pcre8.35 # tar xf pcre-8.35.tar.gz # cd pcre-8.35 # ./configure