全面讲解在linux系统中安装和配置haproxy的过程 【百科全说】-凯发k8官方旗舰厅

腾讯视频/爱奇艺/优酷/外卖 充值4折起

  一、haproxy概念

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

  二、安装haproxy

  代码如下:

  [root@node3 app]# tar zxvf haproxy-1.4.24.tar.gz

  [root@node3 app]# mv haproxy-1.4.24 haproxy

  [root@node3 app]# cd haproxy

  [root@node3 hadoop]# uname -a

  linux node3 2.6.18-164.el5 #1 smp tue aug 18 15:51:54 edt 2009 i686 i686 i386 gnu/linux

  [root@node3 haproxy]# make target=linux24 prefix=/usr/local/haproxy

  gcc -iinclude -iebtree -wall -o2 -g -fno-strict-aliasing -dtproxy -dconfig_hap_crypt -denable_poll -dnetfilter -duse_getsockname -dconfig_haproxy_version="1.4.24" -dconfig_haproxy_date="2013/06/17"

  -dbuild_target='"linux24"'

  -dbuild_arch='""'

  -dbuild_cpu='"generic"'

  -dbuild_cc='"gcc"'

  -dbuild_cflags='"-o2 -g -fno-strict-aliasing"'

  -dbuild_options='""'

  -c -o src/haproxy.o src/haproxy.c

  [root@node3 haproxy]# make install prefix=/usr/local/haproxy

  install -d /usr/local/haproxy/sbin

  install haproxy /usr/local/haproxy/sbin

  install -d /usr/local/haproxy/share/man/man1

  install -m 644 doc/haproxy.1 /usr/local/haproxy/share/man/man1

  install -d /usr/local/haproxy/doc/haproxy

  for x in configuration architecture haproxy-en haproxy-fr; do

  install -m 644 doc/$x.txt /usr/local/haproxy/doc/haproxy ;

  done

  三、配置haproxy

  haproxy配置中分成五部分内容,当然这些组件不是必选的,可以根据需要选择作为配置。

  •global:参数是进程级的,通常和操作系统(os)相关。这些参数一般只设置一次,如果配置无误,就不需要再次配置进行修改;

  •default:配置默认参数的,这些参数可以被利用配置到frontend,backend,listen组件;

  •frontend:接收请求的前端虚拟节点,frontend可以根据规则直接指定具体使用后端的backend(可动态选择);

  •backend:后端服务集群的配置,是真实的服务器,一个backend对应一个或者多个实体服务器;

  •listen:frontend和backend的组合体。

  编写haproxy.cfg文件:

  代码如下:

  global

  maxconn 51200

  chroot /usr/local/haproxy

  uid 99

  gid 99

  daemon

  #quiet

  nbproc 1 #进程数

  pidfile /usr/local/haproxy/logs/haproxy.pid

  defaults

  mode http #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回ok

  #retries 2 #两次连接失败就认为是服务器不可用,也可以通过后面设置

  option redispatch #当serverid对应的服务器挂掉后,强制定向到其他健康的服务器

  option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接

  timeout connect 5000ms #连接超时

  timeout client 30000ms #客户端超时

  timeout server 30000ms #服务器超时

  #timeout check 2000 #=心跳检测超时

  log 127.0.0.1 local0 err #[err warning info debug]

  balance roundrobin #负载均衡算法

  # option httplog #日志类别,采用httplog

  # option httpclose #每次请求完毕后主动关闭http通道,ha-proxy不支持keep-alive,只能模拟这种模式的实现

  # option dontlognull

  # option forwardfor #如果后端服务器需要获得客户端真实ip需要配置的参数,可以从http header中获得客户端ip

  listen admin_stats

  bind 0.0.0.0:8888 #监听端口

  option httplog #采用http日志格式

  stats refresh 30s #统计页面自动刷新时间

  stats uri /stats #统计页面url

  stats realm haproxy manager #统计页面密码框上提示文本

  stats auth admin:admin #统计页面用户名和密码设置

  #stats hide-version #隐藏统计页面上haproxy的版本信息

  listen test1

  bind :12345

  mode tcp

  server t1 192.168.1.101:8881

  server t2 192.168.1.102:8881

  listen test2 :80

  option httpclose

  option forwardfor

  server s1 192.168.1.101:8080 check weight 1 minconn 1 maxconn 3 check inter 40000

  server s2 192.168.1.102:8080 check weight 1 minconn 1 maxconn 3 check inter 40000

  四、启动haproxy

  复制代码

  代码如下:

  [root@node3 haproxy]# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

  [root@node3 app]# ps -ef |grep haproxy |grep -v grep

  root 6950 1 0 19:35 ? 00:00:00 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

  五、通过脚本来启动与关闭haproxy

  1、编写haproxy脚本

  代码如下:

  [root@node3 ~]# cat /etc/rc.d/init.d/haproxy

  #!/bin/bash

  base_dir="/usr/local/haproxy"

  argv="$@"

  start()

  {

  echo "start hapoxy servers"

  $base_dir/sbin/haproxy -f $base_dir/haproxy.cfg

  }

  stop()

  {

  echo "stop hapoxy listen"

  kill -ttou $(cat $base_dir/logs/haproxy.pid)

  echo "stop hapoxy process"

  kill -usr1 $(cat $base_dir/logs/haproxy.pid)

  }

  case $argv in

  start)

  start

  error=$?

  ;;

  stop)

  stop

  error=$?

  ;;

  restart)

  stop

  start

  error=$?

  ;;

  *)

  echo "hactl.sh [start|restart|stop]"

  esac

  exit $error

  2、让脚本随系统自动启动

  代码如下:

  [root@node3 ~]# chmod x /etc/rc.d/init.d/haproxy

  [root@node3 ~]# chkconfig --add haproxy

  service haproxy does not support chkconfig

  ----解决上面的问题的办法是在/etc/rc.d/init.d/haproxy中添加下面两句到#!/bin/bash之后

  [root@node3 ~]# cat /etc/rc.d/init.d/haproxy

  #!/bin/bash

  #chkconfig: 2345 10 90

  #description:haproxy

  base_dir="/usr/local/haproxy"

  argv="$@"

  start()

  ----其中2345是默认启动级别,级别有0-6共7个级别。

  ----等级0表示:表示关机

  ----等级1表示:单用户模式

  ----等级2表示:无网络连接的多用户命令行模式

  ----等级3表示:有网络连接的多用户命令行模式

  ----等级4表示:不可用

  ----等级5表示:带图形界面的多用户模式

  ----等级6表示:重新启动

  ----10是启动优先级,90是停机优先级,优先级范围是0-100,数字越大,优先级越低。

  3、启动与停止haproxy

  代码如下:

  [root@node3 ~]# service haproxy stop

  stop hapoxy listen

  stop hapoxy process

  [root@node3 ~]# ps -ef |grep haproxy |grep -v grep

< p>[root@node3 ~]# service haproxy start

  start hapoxy servers

  [root@node3 ~]# ps -ef |grep haproxy |grep -v grep

  root 11259 1 0 15:33 ? 00:00:00 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

  六、haproxy日志配置

  haproxy在默认情况不会记录日志,除了在haproxy.conf中的global段指定日志的输出外,还需要配置系统日志的配置文件。下面以centos6.4为例,haproxy使用系统自带的rpm报1.4版本

  1、vim /etc/haproxy/haproxy.conf

  代码如下:

  global

  log 127.0.0.1 local3 #local3是设备,对应于 /etc/rsyslog.conf中的配置,默认回收info的日志级别

  maxconn 1024

  user haproxy

  group haproxy

  daemon

  pidfile /var/run/haproxy.pid

  defaults

  mode http

  log global

  option httplog

  option dontlognull

  option http-server-close

  option forwardfor except 127.0.0.0/8

  retries 2

  option redispatch

  maxconn 1024

  2、编辑系统日志配置

  代码如下:

  vim /etc/rsyslog.conf

  默认有下面的设置,会读取 /etc/rsyslog.d/*.conf目录下的配置文件

  代码如下:

  $includeconfig /etc/rsyslog.d/*.conf

  为haproxy创建一个独立的配置文件

  代码如下:

  vim /etc/rsyslog.d/haproxy.conf

  $modload imudp

  $udpserverrun 514

  local3.* /var/log/haproxy.log

  #如果不加下面的的配置则除了在/var/log/haproxy.log中写入日志外,也会写入message文件

  &~

  3、配置rsyslog的主配置文件,开启远程日志

  代码如下:

  vim /etc/sysconfig/rsyslog

  syslogd_options=”-c 2 -r -m 0″

  #-c 2 使用兼容模式,默认是 -c 5

  #-r 开启远程日志

  #-m 0 标记时间戳。单位是分钟,为0时,表示禁用该功能

  配置完成后重启haproxy和rsyslog服务

  代码如下:

  /etc/init.d/rsyslog restart

  /etc/init.d/haproxy restart

  4、在红帽5上配置系统日志与红帽6不同,红帽5的/etc/rsyslog.conf 不包含/etc/rsyslog.d/*.conf,配置如下

  代码如下:

  #加入haproxy.none表示不把haproxy日志写入message

  $modload imudp

  $udpserverrun 514

  *.info;mail.none;authpriv.none;cron.none;local3.none /var/log/messages

  local3.* /var/log/haproxy.log

07/30 08:17
varnish-cache在linux系统中是一套高效能的反向网站快取服务器,这样的服务器很大的方便了电脑的使用,但是在电脑上要怎么的进行安装和体验呢!现在我们一起来看看吧! 主要理解下vcl 几个状态,主要是 vcl-recv 和 vcl-fetch 基本就够用了 vcl-recv 一般可以指定 使用哪个backend 可以设定 pass 规则 vcl-fetch 主要处理 缓存规则,设置缓存时间 beresp.ttl 1.手动清理缓存的命令(3.0版和以前有出入来着): sudo varni
04/25 03:15
linux系统中安装使用ntfs-3g挂载ntfs分区的教程.系统环境默认安装后,不能访问ntfs分区,在安装和配置ntfs-3g以后即可. 1.安装ntfs-3g 代码如下: apt-get -y install ntfs-3g 2.创建挂载的文件夹 我windows下面有三个磁盘.都需要访问.所以在/mnt中新建了三个文件夹,分别是/mnt/c./mnt/d./mnt/e 3.挂载分区 首先使用fdisk命令查看目前磁盘情况 代码如下: debian-hcshangxinli:/home/s
05/28 23:36
telegram是和whatsapp类似的及时通讯应用.它有一个庞大的用户群,并且很多独特的特性. telegram messenger for linux 这篇文章让你了解telegram应用,以及在linux box上的详细安装命令. telegram的特性 支持移动设备 有桌面版本 第三方开发者可以访问telegram的应用程序接口(api). 支持android, iphone/ipad, windows phone, web-version, pc, mac 和 linux. 以上应用
05/28 19:24
恶意软件是指任何旨在干扰或破坏计算系统正常运行的软件程序.虽然最臭名昭著的几种恶意软件如病毒.间谍软件和广告软件,但它们企图引起的危害不一:有的是窃取私密信息,有的是删除个人数据,有的则介于两者之间;而恶意软件的另一个常见用途就是控制系统,然后利用该系统发动僵尸网络,形成所谓的拒绝服务(dos)攻击或分布式拒绝服务(ddos)攻击. 换句话说,我们万万不可抱有这种想法"因为我并不存储任何敏感数据或重要数据,所以不需要保护自己的系统远离恶意软件",因为那些数据并不是恶意软件的唯一目标.
01/22 09:11
munin是用于linux系统(也可以监控windows系统)的监控软件.munin除了可以监控系统的各项数值之外,最大的好处是可以自己编写插件自定义监控需要的数值.整个系统的架构简单明了,操作方便.如果是使用debian或者ubuntu安装,安装过程也非常简单.munin除了可以监控结果,也可以设置报警.对于我个人对性能测试的工作来说,是个非常好的工具. 内容 munin整个使用下来,篇幅会有点大,包括展示.自定义插件.这边分成三个部分来说明.本次只讲安装和配置. munin master和m
04/25 09:13
mutt是一个linux终端下的著名的邮件客户端,如你所愿,mutt就是一个邮件客户端.没有其他浮华的功能,它可以帮助你提升效率,至于帮助你装x只能算是mutt的特殊加成.由于mutt是一个有着unix哲学的程序,可定制性很强,其高级功能可以由不同的程序来完成,比如以下搭配:1.mutt使用mutt内建的imap,pop,smtp支持,最简单的方式,只需要安装mutt这一个软件包.2.mutt msmtp最简单的组合,配合imap协议,可以满足大多数人的要求其中smtp功能由msmtp实现,

在linux系统中安装virtualbox增强功能(增强包)的详细步骤

01/14 02:24
1. 点击菜单栏 设备 –> 分配光驱 –> 选择一个虚拟光盘,找到virtualbox安装目录下的vboxguestadditions.iso,加载此镜像。 2. 启动linux系统并用root身份登入系统 3. 执行挂载命令,将虚拟光盘挂在到 /mnt/cdrom,如果没有cdrom目录,则先创建之。 复制代码 代码如下: mkdir /mnt/cdrom mount -t auto -r ro /dev/cdrom /mnt/cdrom 4. 复制脚本到/tmp目录下 复制代码
09/03 23:25
1 什么是raid,raid的级别和特点 ; 什么是raid呢?全称是 “a case for redundant arrays of inexpensive disks (raid)”,在1987年,由加州大学伯克利大学发表的论文而来,其实就是这个标题的缩写就是raid;中译为“磁盘阵列”; raid就是把几个物理磁盘组合在一起成为一个大的虚拟物理磁盘,主要目的和用途主要有:把若干小容量物理磁盘组成一个大容量虚拟存储设备(以前的物理磁盘的容量都比较小);提高物理存储效率(读、写),或提供冗余以
06/23 09:41
linux系统下如果你想了解多台数据库服务器之间的负载情况,那么你就会用到clustershell工具,作为linux运维利器,其安装及配置也是一门学问,那么在linux上要如何安装及配置clustershell呢? clustershell的安装与配置 clustershell的安装很easy,如果使用apt或yum包管理方式的话,基本就是一条命令的事儿,我就不说了,这里说一下如何从源代码安装,需要在源代码目录执行如下命令: shell> python setup.py install 为了使
网站地图