设为首页 收藏本站
查看: 1379|回复: 0

[经验分享] HAProxy的安装及配置

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2015-11-20 13:01:15 | 显示全部楼层 |阅读模式
软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现。LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载。  HAProxy相比LVS的使用要简单很多,功能方面也很丰富。当 前,HAProxy支持两种主要的代理模式:"tcp"也即4层(大多用于邮件服务器、内部协议通信服务器等),和7层(HTTP)。在4层模式 下,HAProxy仅在客户端和服务器之间转发双向流量。7层模式下,HAProxy会分析协议,并且能通过允许、拒绝、交换、增加、修改或者删除请求
(request)或者回应(response)里指定内容来控制协议,这种操作要基于特定规则。

  我现在用HAProxy主要在于它有以下优点,这里我总结下:
  一、免费开源,稳定性也是非常好,这个可通过我做的一些小项目可以看出来,单Haproxy也跑得不错,稳定性可以与LVS相媲美;
  二、根据官方文档,HAProxy可以跑满10Gbps-New benchmark of HAProxy at 10 Gbps using Myricom's 10GbE NICs (Myri-10G PCI-Express),这个作为软件级负载均衡,也是比较惊人的;
  三、HAProxy可以作为MySQL、邮件或其它的非web的负载均衡,我们常用于它作为MySQL(读)负载均衡;
  自带强大的监控服务器状态的页面,实际环境中我们结合Nagios进行邮件或短信报警,这个也是我非常喜欢它的原因之一;
  HAProxy支持虚拟主机。
  


  实验环境:
  



HAProxy  IP:192.168.207.129     Centos5.5-64bit
Web1     IP:192.168.207.130     Centos5.5-64bit
Web2     IP:192.168.207.131     Centos5.5-64bit
  
  
  具体安装及配置文档如下:
  一、HAProxy的下载及安装过程:

wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.8.tar.gz
make TARGET=linux26 prefix=/usr/local/haproxy install
cd /usr/local/haproxy
mkdir conf
cd conf
vim haproxy.conf

  内容 如下:
  



global
log 127.0.0.1   local0
maxconn 4096
chroot /usr/local/haproxy
uid 501
gid 501
daemon
nbproc 1
pidfile /usr/local/haproxy/logs/haproxy.pid
debug
defaults
log     127.0.0.1       local3
mode    http
option httplog
option httpclose
option dontlognull
option forwardfor
option redispatch
retries 2
maxconn 2000
balance roundrobin
stats   uri     /haproxy-stats
contimeout      5000
clitimeout      50000
srvtimeout      50000
listen web_proxy 192.168.207.129:80
#option httpchk HEAD /index.php  HTTP/1.0
server web1_192.168.207.130 192.168.207.130:80 cookie app1inst1 check inter 2000 rise 2 fall 5
server web2_192.168.207.131 192.168.207.131:80 cookie app1inst2 check inter 2000 rise 2 fall 5

另外,建议配置一个HAProxy的启动、关闭、重启脚本,放在/etc/init.d下,我们在平时的工作中应该养成一个习惯,服务器的启动或重启应该是最简单的,万一到了生产环境下出错时,我们可以以最快的方式启动,如果不用脚本的话,我们就要尝试以如下方式启动:  
  


  

/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.conf


以下脚本生成后,我们直接可以用/etc/init.d/haproxy  start来启动HAProxy服务了。  
  



  #!/bin/bash
BASE_DIR="/usr/local/haproxy"
ARGV="$@"
  start()
{
echo "START HAPoxy SERVERS"
$BASE_DIR/sbin/haproxy -f $BASE_DIR/conf/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

  
  




  
  
  我们在Firefox或IE上输入http://192.168.207.129  就可以轮询的看到后端的web的页面了,另外我们可以随时监控页面http://192.168.207.129/haproxy-status/,效果图如下:
   DSC0000.png
  另外,如果要做HAProxy的高可用,我推荐用HAProxy+Keepalived,网上成功的安例也有许多,大家可以googel学习下,如果你对此篇文章有疑问或其它,
  


  转自:http://network.iyunv.com/art/201103/249586.htm


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-141509-1-1.html 上篇帖子: web_reverse_proxy --> haproxy 下篇帖子: 详解HaProxy
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表