当前位置:七道奇文章资讯系统安全Linux安全
日期:2011-06-03 17:19:00  来源:本站整理

haproxy安装配置调优[Linux安全]

赞助商链接



  本文“haproxy安装配置调优[Linux安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
  HAProxy供应高可用性、负载均衡以及基于TCP和HTTP利用的代理,支持虚拟主机,它是免费、快速并且坚固的一种办理筹划.按照官方数据,其最高极限支持10G的并发.
  HAProxy分外实用于那些负载特大的web站点, 这些站点普通又需求会话保持或七层处理.HAProxy运行在当前的硬件上,完好可以支持数以万计的并发衔接.并且它的运行情势使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被表露到网络上.
  其支持从4层至7层的网络交换,即覆盖全部的TCP协议.就是说,Haproxy 乃至还支持 Mysql 的均衡负载..
  假如说在功效上,能以proxy反向代理方法实现 WEB均衡负载,这样的产品有很多.包含 Nginx,ApacheProxy,lighttpd,Cheroke 等.
  但要明确一点的,Haproxy 并非 Http 服务器.以上提到全部带反向代理均衡负载的产品,都清一色是 WEB 服务器.简单说,就是他们能自个儿供应静态(html,jpg,gif..)或动态(php,cgi..)文件的传输以及处理.而Haproxy 仅仅,并且专门是一款的用于均衡负载的利用代理.其自身并不能供应http服务.
  但其配置简单,拥有非常不错的服务器安康查抄功效还有专门的系统状况监控页面,当其代理的后端服务器呈现弊端, HAProxy会自动将该服务器摘除,弊端恢复后再自动将该服务器加入.自1.3版本开始还引入了frontend,backend,frontend按照肆意HTTP恳求头内容做法则匹配,然后把恳求定向到相关的backend.
  别的, 版本1.3 是处于活泼开辟阶段的版本, 它支持以下新特点:
  l 内容交换 : 可以按照恳求(request)的任何一部份 来挑选一组服务器, 比方恳求的 URI , Host头(header) , cookie , 以及其他任何东西. 当然,对那些静态别离的站点来说,对此特点还有更多的需求.
  l 全透明代理 : 可以用 客户端IP地址 大概任何其他地址来衔接后端服务器. 这个特点仅在Linux 2.4/2.6内核打了cttproxy 补钉后才可以利用. 这个特点也使得为某特别服务器处理部份流量同时又不改正服务器的地址成为大概.
  l 基于树的更快的调度器 : 1.2.16以上的版本要求全部的超时都设成一样的值以支持数以万计的全速衔接. 这个特点已经移植到1.2.17.
  l 内核TCP拼接 : 避免了内核到用户然后用户到内核端的数据拷贝, 提高了吞吐量同时又降低了CPU利用率 . Haproxy 1.3支持Linux L7SW 以满意在商用硬件上数Gbps 的吞吐的需求.
  l 衔接回绝 : 因为保护一个衔接的翻开的开销是很低的,有时我们很需求限制攻击蠕虫(attack bots),也就是说限制它们的衔接翻开从而限制它们的危害. 这个已经为一个陷于小型DDoS攻击的网站开辟了并且已经解救了很多站点.
  l 渺小的头部处理 : 使得编写基于header的法则更为简单,同时可以处理URI的某部份.
  l 快而坚固的头部处理 : 利用完好RFC2616 兼容的完好性查抄对普通的恳斥责部举行解析和索引仅仅需求不到2ms 的时间.
  l 模块化计划 : 答应更多人加入进此项目,调试也非常简单. poller已经别离, 已经使得它们的开辟简单了很多. HTTP已经从TCP别离出来了,这样增添新的七层特点变得非常简单. 其他子系统也会很快实现模块化
  l 投机I/O 处理 : 在一个套接字就绪前就尝试从它读取数据.poller仅猜测哪个大概就绪哪个没有,尝试猜想,并且假如成功,一些开销很大的系统调用便可以省去了.假如失利,就会调用这些系统调用.已知的利用Linux epoll()已经净晋升最少10%了.
  l ACLs : 利用肆意法则的肆意组合作为某行动的履行条件.
  l TCP 协议查抄 : 结合ACL来对恳求的肆意部份举行查抄,然后再举行转发.这便可以履行协议考证而不是盲目的举行转发.比方说答应SSL但回绝SSH.
  l 更多的负载均衡算法 : 目前,动态加权轮循(Dynamic Round Robin),加权源地址哈希(Weighted Source Hash),加权URL哈希和加权参数哈希(Weighted Parameter Hash)已经实现.其他算法比方Weighted Measured Response Time也很快会实现.
  安装和配置
  Haproxy 的配置相当简单,
  从官方网站:http://www.haproxy.org 下载最新版本.
  # wget http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.20.tar.gz
  # tar zcvf haproxy-1.3.20.tar.gz
  # cd haproxy-1.3.20
  # make TARGET=linux26 PREFIX=/usr/local/haprpxy
  # make install PREFIX=/usr/local/haproxy
  安装完毕后,进入安装目录成立配置文件
  # cd /usr/local/haproxy
  # vi haproxy.cfg
  配置内容以下:
  global
  log 127.0.0.1 local0
  #log 127.0.0.1 local1 notice
  #log loghost local0 info
  maxconn 4096
  chroot /usr/local/haproxy
  uid 99 #所属运行的用户uid
  gid 99 #所属运行的用户组
  daemon
  nbproc 1
  pidfile /usr/local/haproxy/run/haproxy.pid
  #debug
  #quiet
  defaults
  log global
  log 127.0.0.1 local3 #日记文件的输出定向
  mode http #所处理的类别
  option httplog #日记类别
  option httpclose
  option dontlognull
  option forwardfor
  option redispatch
  retries 2 #设置多个haproxy并发进程提高性能
  maxconn 2000
  balance roundrobin #负载均衡算法
  stats uri /haproxy-stats #haproxy 监控页面的拜候地址
  # 可通过 http://localhost:1080/haproxy-stats 拜候
  contimeout 5000
  clitimeout 50000
  srvtimeout 50000
  listen localhost 0.0.0.0:1080 #运行的端口及主机名
  mode http
  option httpchk GET /index.htm #安康检测
  server s1 127.0.0.1:3121 weight 3 check #后端的主机 IP &衡量
  server s2 127.0.0.1:3122 weight 3 check #后端的主机 IP &衡量
  启动服务:
  # /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
  重启服务:
  # /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg -st `cat /usr/local/haproxy/logs/haproxy.pid` (没有换行)
  终止服务:
  # killall haproxy
  当然,为了便利系统在开机时加载,还可以成立启动脚本:
  # vim /etc/rc.d/init.d/haproxy 内容以下:
  #! /bin/sh
  set -e
  PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/haproxy/sbin
  PROGDIR=/usr/local/haproxy
  PROGNAME=haproxy
  DAEMON=$PROGDIR/sbin/$PROGNAME
  CONFIG=$PROGDIR/conf/$PROGNAME.conf
  PIDFILE=$PROGDIR/run/$PROGNAME.pid
  DESC="HAProxy daemon"
  SCRIPTNAME=/etc/init.d/$PROGNAME
  # Gracefully exit if the package has been removed.
  test -x $DAEMON || exit 0
  start()
  {
  echo -n "Starting $DESC: $PROGNAME"
  $DAEMON -f $CONFIG
  echo "."
  }
  stop()
  {
  echo -n "Stopping $DESC: $PROGNAME"
  haproxy_pid=cat $PIDFILE
  kill $haproxy_pid
  echo "."
  }
  restart()
  {
  echo -n "Restarting $DESC: $PROGNAME"
  $DAEMON -f $CONFIG -p $PIDFILE -sf $(cat $PIDFILE)
  echo "."
  }
  case "$1″ in
  start)
  start
  ;;
  stop)
  stop
  ;;
  restart)
  restart
  ;;
  *)
  echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
  exit 1
  ;;
  esac
  exit 0
  保存后赐予可履行权限
  # chmod +x /etc/rc.d/init.d/haproxy
  便可以利用 service haproxy start|stop|restart 来掌握服务的启动终止跟重启.
  并通过以下号令加载到开机服务启动列表
  # chkconfig –add haproxy
  配置日记:
  # vim /etc/syslog.conf
  在最下边增添
  local3.* /var/log/haproxy.log
  local0.* /var/log/haproxy.log
  重启核心日记服务使配置起效
  # service syslog restart
  然后便可查看日记了
  # tail –f /var/log/harpoxy.log
  Aug 22 15:32:06 localhost haproxy[64136]: Proxy www started.
  Aug 22 15:32:06 localhost haproxy[64136]: Proxy cherokee started.
  Aug 22 15:32:06 localhost haproxy[64136]: Proxy wap started.
  Aug 22 15:32:06 localhost haproxy[64136]: Proxy pic started.
  Aug 22 15:32:06 localhost haproxy[64136]: Proxy img started.
  Aug 22 15:32:06 localhost haproxy[64136]: Proxy public started.
  Aug 22 15:32:06 localhost haproxy[64136]: Proxy public started.
  Aug 22 15:32:59 localhost haproxy[64137]: 219.142.128.30:6416 [22/Aug/2009:15:32:59.754] public stats/ 0/-1/-1/-1/0 200 17329 – - PR– 0/0/0/0/0 0/0 "GET /?stats HTTP/1.1″
  Aug 22 15:32:59 localhost haproxy[64137]: 219.142.128.30:6416 [22/Aug/2009:15:32:59.754] public stats/ 0/-1/-1/-1/0 200 17329 – - PR– 0/0/0/0/0 0/0 "GET /?stats HTTP/1.1″
  利用举例
  WEB 均衡负载 & 虚拟主机
  重新翻开配置文件 haproxy.cfg,留神最下部份的均衡主机选项
  listen localhost 0.0.0.0:1080 #运行的端口及主机名
  mode http
  option httpchk GET /index.htm #用于安康检测的后端页面
  server s1 127.0.0.1:3121 weight 3 check #后端的主机 IP &衡量
  server s2 127.0.0.1:3122 weight 3 check #后端的主机 IP &衡量
  在实行中,我们的的后端是 squid 脱离了2个端口在同一台服务器上.
  以此中一项为例:
  server s1 127.0.0.1:3121 weight 3 check
  s1 是可自己定义的服务器别名
  127.0.0.1:3121 服务器的IP地址以及端口号
  weight 3 所能分配到恳求的高低衡量,数字越大分配到的恳求数就越高
  check 承受 haproxy 的按时查抄,以肯定后端服务器的安康情形.
  如需配置虚拟主机,相当简单,紧需改正 localhost 为你虚拟主机的的域名,加到haproxy配置中, 再为其分配后端服务器的参数便可.
  例:
  listen www.x1.com 0.0.0.0:1080 #运行的端口及主机名
  mode http
  option httpchk GET /index.htm #用于安康检测的后端页面
  server s1 127.0.0.1:3121 weight 3 check #后端的主机 IP &衡量
  server s2 127.0.0.1:3122 weight 3 check #后端的主机 IP &衡量
  listen www.x2.com 0.0.0.0:1080 #运行的端口及主机名
  mode http
  option httpchk GET /index.htm #用于安康检测的后端页面
  server s1 127.0.0.1:3121 weight 3 check #后端的主机 IP &衡量
  server s2 127.0.0.1:3122 weight 3 check #后端的主机 IP &衡量
  保存配置后重新加载,便可见效,革新管理页面也可看到新的虚拟主机.
  性能比较
  在此,我们用近来最火红的 http 兼前端WEB均衡负载服务器 Nginx 与 Haproxy 做个简单的性能比较.
  测试环境:
  CPU:Xeon2.8G X2
  RAM:4G
  OS:RedHat As5.3 X64
  工具:apache ab
  参数:ab -i -c 500 -n 100000 (500并发,1W恳求)
  终究服务端:2个squid 需实现均衡负载
  成就以下:
  ####### Nginx + haproxy : (由Nginx通过反向代理发送恳求至haproxy, 并由其举行均衡负载)
  Concurrency Level: 500
  Time taken for tests: 53.758 seconds<
  以上是“haproxy安装配置调优[Linux安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • haproxy安装配置调优
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .