欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


powertool是什么
Windows Server 2003安全事件ID分析
用无线路由器确保无线网络安全
如何优化Wi-Fi无线网络环境
百度杀毒在电脑很卡时不安装如何确保电脑安全
百度杀毒有哪些放毒服务
百度杀毒有什么语言版本
百度杀毒不想扫描某些特定程序或文件如何设置
IDC托管,IT经理如何保障数据安全
金山毒霸界面简介怎么样
全面讲解在Linux系统中安装和配置HAProxy的过程
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

   一、Haproxy概念

  Haproxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。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

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站