HAproxy - 铁钉 - 51CTO技术博客

HAproxy

2009-11-30 14:24:37

标签:HAproxy 休闲 职场

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nails.blog.51cto.com/640492/236878
HAPorxy 集群配置
 
                                              
 
  HAProxy 介绍 
      反向代理服务器,支持双机热备支持虚拟主机,但其配置简单,拥有非常不错的服务器健康检查功能,当其代理的后端服务器出现故障, HAProxy会自动将该服务器摘除,故障恢复后再自动将该服务器加入。有Web图形化的界面,可以查看集群的状态。 
新的1.3版本后,引入了frontend,backend,frontend根据任意HTTP请求头内容做规则匹配,然后把请求定向到相关的backend.
 
 
  网络架构 
 
一般采用的网络结构(反向代理)
 
 
 
 
 
 
 
  配置实例 
 
角色
操作系统
IP地址及对应域名
服务端口
HAproxy
Redhat Linux AS4
eth0    10.0.0.60/24  dms.sds.com
eth0    10.0.0.70/24  help.sds.com
eth1    10.0.1.60/24
80
APP Server
Windows
10.0.1.10—15/24
80
 
需要:
1.      访问 dms.sds.com 时,自动分发到集群节点服务器10.0.1.10-15/24 这6台服务器上。
2.      访问 help.sds.com 时,自动分发到服务器 10.0.1.15/24 上(该服务器上有帮助网站)。
 
配置步骤
 
1.      从 http://haproxy.1wt.eu 下载 HAproxy 最新稳定版
2.      将下载的文件haproxy-1.3.15.1.tar.gz存放到Linux服务器/usr/share目录。
3.      解压tar –zxvf  haproxy-1.3.15.1.tar.gz
4.      重命名解压后的文件夹 mv haproxy-1.3.15.1 haproxy
5.    cd haproxy
6.      make TARGET=linux26  #本例Redhat 的内核是2.6,请先查看HAproxy 的README
7.      make install
8.      安装好后就可以配置了。
9.      vi haproxy.cfg
global
       maxconn 5120
       chroot /usr/share/haproxy   #  haproxy安装目录
       uid 99
       gid 99
       daemon
      quiet
        # 通过nbproc多设置几个haproxy并发进程,这样每个进程的task_queue相对就会短很多,性能自然就能提高不少
       nbproc   2  
       #pidfile /var/run/haproxy-private.pid
 
defaults
 
       log     global
       mode http
       option   httplog
       option   dontlognull
       log 127.0.0.1 local3
       retries 3
       option redispatch
       maxconn 2000
       contimeout    5000
       clitimeout    50000
       srvtimeout    50000
 
listen SDS.DMS.COM 10.0.0.60:80  # 监听IP及端口,域名是在Web界面显示的标识
 
   mode http
   stats uri /haproxy   # 监控haproxy状态虚拟目录
   stats realm Haproxy\statistics
   stats auth gao:gao   # 设置状态监控的用户名为gao密码为gao
   balance roundrobin   # 负载均衡算法
   cookie SERVERID insert indirect
   option httpclose
   option forwardfor 
   option httpchk HEAD /welcome.htm HTTP/1.0   # 健康检测 每一台的IIS根目录存放
#  weblocme.htm文件
# 下面是节点服务器
server APP01 10.0.1.10:80 cookie app1inst1 check inter 2000 rise 2 fall 5
server APP02 10.0.1.11:80 cookie app1inst2 check inter 2000 rise 2 fall 5
server APP03 10.0.1.12:80 cookie app1inst3 check inter 2000 rise 2 fall 5
server APP04 10.0.1.13:80 cookie app1inst4 check inter 2000 rise 2 fall 5
server APP05 10.0.1.14:80 cookie app1inst5 check inter 2000 rise 2 fall 5
server APP06 10.0.1.15:80 cookie app1inst6 check inter 2000 rise 2 fall 5
 
 
listen Help.SDS.Com  10.0.0.70:80  # 监听IP及端口,域名是在Web界面显示的标识
 
   mode http
   stats uri /haproxy       # 监控haproxy状态虚拟目录
   stats realm Haproxy\statistics
   stats auth gao:gao    # 设置状态监控的用户名为gao密码为gao
   balance roundrobin       # 负载均衡算法
   cookie SERVERID insert indirect
   option httpclose 
   option forwardfor   
   option httpchk HEAD /welcome.htm HTTP/1.0   # 健康检测IIS根目录存放有
#  weblocme.htm文件
 
# 下面是节点服务器
server APP01 10.0.1.15:80 cookie app1inst1 check inter 2000 rise 2 fall 5
 
9. 配置文件写好后就可以启动了。
Ifcfg eth0 add 10.0.0.70/24  为eth0 添加第二个IP地址
./haproxy –f haproxy.cfg 即可启动程序.
 
用IE测试 http://sds.dms.com/welcome.htm ,不断刷新是不会显示其它APP服务器的welcome.htm页面,需要我们关掉IE,再次访问 http://sds.dms.com/welcome.htm即显示另一台,如此反复即可看到每台APP上的welcome.htm
   用IE测试 http://help.sds.com 也能显示10.0.0.15 上的帮助网站。
   用IE输入: http://sds.dms.com/haproxy 或 http://help.sds.com/haproxy 输入用户名:gao 密码:gao即可看到haproxy的集群状态,如下图
 
配置haproxy Linux系统自启动配置
1.建立一个haproxy 的shell文件,用于控制haproxy的启动与关闭
Cd /etc/rc.d/init.d
Vi haproxy
#!/bin/sh
# description: Auto Start and Stop Haproxy Software
# chkconfig: 2345 99 10
 
start ()
{
cd /usr/share/haproxy
./haproxy -f haproxy.cfg
}
 
stop ()
{
pid=`ps -ef | grep -v grep | grep haproxy | awk '{print $2}'`
for ps in $pid
do
  kill -9 $ps
done
}
 
 
case $1 in
 
   start)    start ;;
   stop)     stop ;;
    *)   echo "Use ./haproxy {start|stop}" ;;
esac
 
exit 0
 
2. chmod 755 haproxy
 
3. 添加自启动功能,在/etc/rc.d/rc.local文件中添加如下内容
Vi /etc/rc.d/rc.local
ifcfg eth0 add 10.0.0.70/24  # 为 eth0 添加第2个IP
cd /etc/rc.d/init.d
./haproxy start            # 启动haproxy 程序
 
 
4. 操作haproxy 的相关命令
cd /etc/rc.d/init.d
./haproxy start     # 启动haproxy
./haproxy stop      # 停止haproxy
./haproxy restart   # 重启动haproxy
 

HAproxy - 铁钉 - 51CTO技术博客相关推荐

  1. (2006, 'MySQL server has gone away') 错误解决 - dba007的空间 - 51CTO技术博客

    (2006, 'MySQL server has gone away') 错误解决 - dba007的空间 - 51CTO技术博客 (2006, 'MySQL server has gone away ...

  2. python脚本监控网站状态 - 赵海华_运维之路 - 51CTO技术博客

    python脚本监控网站状态 - 赵海华_运维之路 - 51CTO技术博客 python脚本监控网站状态 2013-01-09 09:21:02 标签:监控 python 原创作品,允许转载,转载时请 ...

  3. 有关网页抓取问题的一些经验总结 - passover【毕成功的博客】 - 51CTO技术博客

    有关网页抓取问题的一些经验总结 - passover[毕成功的博客] - 51CTO技术博客 有关网页抓取问题的一些经验总结 2011-05-05 18:07:38 标签:爬虫 网页抓取 在写爬虫的时 ...

  4. 今天正式开通51CTO技术博客

    今天正式开通51CTO技术博客,今后会把自己工作和学习过程中的点点滴滴记录在此博客中! 转载于:https://blog.51cto.com/dashuai/1160235

  5. Maven问题总结 - 3 - 技术改变生活商业成就梦想 - 51CTO技术博客

    Maven问题总结 - 3 - 技术改变生活商业成就梦想 - 51CTO技术博客 Maven问题总结 - 3 - 技术改变生活商业成就梦想 - 51CTO技术博客 Maven问题总结 - 3 2010 ...

  6. 自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客

    自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客 自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客 自动化运维工具Ansib ...

  7. CentOS 6.4下安装和配置Samba - 行知小筑 - 51CTO技术博客

    CentOS 6.4下安装和配置Samba - 行知小筑 - 51CTO技术博客

  8. Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记 - passover【毕成功的博客】 - 51CTO技术博客...

    Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记 - passover[毕成功的博客] - 51CTO技术博客

  9. 51CTO移动客户端可以在线下载安装啦 - 51CTO博客开发 - 51CTO技术博客

    51CTO移动客户端可以在线下载安装啦 - 51CTO博客开发 - 51CTO技术博客 51CTO移动客户端可以在线下载安装啦 - 51CTO博客开发 - 51CTO技术博客 51CTO移动客户端可以 ...

最新文章

  1. 一步一步写算法(之洗牌算法)
  2. pic10f220 c语言,PIC10F200 LED流水灯程序
  3. html 表格 左侧表头,左侧是表头的JS表格控件(自写,网上没有的)
  4. 【原创】注意析构函数的使用
  5. 悲催!谷歌员工中位数年薪达 170 万元,却仍买不起房!
  6. java 任务栏程序_如何在任务栏显示java程序图标
  7. 彩虹战队waf测试工具(测试数据)
  8. JAVA之day3对象
  9. IMEI校验思路及代码
  10. 【WP7进阶】——XNA游戏精灵的动画
  11. USB2.0 描述符
  12. 数据中台外部演示脚本
  13. 解决post请求跨域请求第三方服务器
  14. 新建的html文件都不能显示图片,WindowsXp系统打开网页无法显示图片的解决方案...
  15. python怎么判断等于_python中怎么判断不等于
  16. 计算机中用函数排序,编写一个sort()函数,实现选择法排序,在主函数中输入10个整数,主函数调用sort()函数实现排序后将数据输出。...
  17. 偷偷看,别让老板发现了...微信如何多开,实现工作号和私人号分离|亲测,win系列所有系统都可以实现
  18. 软考-信息系统项目管理师-论文
  19. 8086CPU有哪些寄存器组成?各有什么用途?标志寄存器的各标志位在什么情况下置位?
  20. 那些好用的无版权免费图片网站

热门文章

  1. 004 排序(冒泡快排)
  2. $.ajax()常用方法详解(推荐)
  3. python通过手机抓取微信公众号
  4. R语言学习(10)获取数据
  5. C#语言基础——7月21日
  6. java–Servlet基础
  7. 什么是DNS,A记录,子域名,CNAME别名,MX记录,TXT记录,SRV 记录,TTL值
  8. vscode+php+phpstudy:断点调试(f5后vscode无法继续下一步;浏览器无法断点,直接返回执行结果的解决方法)
  9. oracle最佳环境,创建最适合的Oracle运行环境
  10. mysql结果以字符串显示不出来,mysql – 为什么SQl MATCH AGAINST找不到结果中只有3个字符的结果?...