Haproxy

简介:

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

HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。

HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

HAProxy实现了一种事件驱动, 单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户空间(User-Space) 实现所有这

些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。

安装:

#下载
wget http://fossies.org/linux/misc/haproxy-1.6.9.tar.gz
#解压
tar -zxvf haproxy-1.6.9.tar.gz
cd haproxy-1.6.9
#安装
make TARGET=linux2628 ARCH=x86_64 PREFIX=/usr/local/haproxy
make install PREFIX=/usr/local/haproxy #参数说明
TARGET=linux26 #内核版本,使用uname -r查看内核,如:2.6.18-371.el5,此时该参数就为linux26;kernel 大于2.6.28的用:TARGET=linux2628
ARCH=x86_64 #系统位数
PREFIX=/usr/local/haprpxy #/usr/local/haprpxy为haprpxy安装路径

 

配置:

【/usr/local/haproxy/haproxy.conf】

global
daemon
log 127.0.0.1 local3 info
maxconn
ulimit-n
uid 1001 #普通用户的uid和gid
gid
quiet
quiet
nbproc
pidfile /home/work/env/haproxy/haproxy.pid #普通用户路径权限
defaults
mode tcp #协议
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http-in-unstable #名字
bind 43.243.130.89:1115 #本地端口 ,注本地端口防火墙也要放开
default_backend httpunstable
backend httpunstable
server proxy00 192.168.122.173: check inter fall weight maxconn
#外部端口(虚拟机)端口
frontend http-in-unstable_1443
bind 43.243.130.89:
default_backend httpunstable_1443
backend httpunstable_1443
server proxy00 192.168.122.173: check inter fall weight maxconn

 启动脚本:

/home/work/env/haproxy/check_haproxy.sh  #注意路径权限

#!/bin/sh
dir=`dirname $(realpath $)`
selfname=`basename $`
cd $dir
PID=`ps aux | grep '/usr/local/haproxy/sbin/haproxy' | grep -v grep | grep -v "$selfname" | awk '{ print $2 }'`
if [ -z "$PID" ]; then
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.conf
fi

最新文章

  1. Java:多线程<三>死锁、线程间通讯
  2. Linux下GCC和Makefile实例(从GCC的编译到Makefile的引入) 转
  3. Ubuntu 14.04下安装eclipse搭建C++开发环境
  4. SQL技术内幕-13 SQL优化方法论之分离重量级的等待
  5. PE文件简单介绍
  6. Javascript技巧实例精选(1)—鼠标选择动态改变网页背景颜色
  7. Django 创建admin账户
  8. Flask博客开发——登录验证码
  9. 数据类型、运算符及Scanner类练习
  10. java数组的for遍历
  11. 阿里云短信验证使用(PHP)
  12. 在eclipse中配置Python环境
  13. QT QProgressBar QProgressDialog 模态,位置设置,无边框,进度条样式
  14. psql: could not connect to server: No such file or directory&&PGHOST
  15. Windows Phone本地数据库(SQLCE):2、LINQ to SQL(翻译)(转)
  16. How to convert a QString to unicode object in python 2?
  17. SpringMvc+Spring+MyBatis+Maven
  18. find命令中选项-path和-prune的使用
  19. Pascal三角形
  20. safari 移动下开启 滚定回弹

热门文章

  1. OpenCV 中的三大数据类型( 概述 )
  2. Python学习总结之四 -- 这就是Python的字典
  3. ASP.NET动态网站制作(8)-- JS(3)
  4. python 基础 7.4 os 模块
  5. phthon 基础 7.3 logging 日志模块
  6. 【BZOJ2654】tree 二分+最小生成树
  7. EasyNVR实现海康、大华NVR硬盘录像机Web无插件播放方案(支持取特定时间段视频流)
  8. 基于EasyNVR二次开发实现自己的摄像机IPC/NVR无插件化直播解决方案
  9. 响应式布局【3】 --- bootstrap
  10. Swift 烧脑体操(四) - map 和 flatMap