渡人自渡 发表于 2015-11-20 11:15:35

cygwin编译windows下的haproxy笔记

  最近在学习服务器负载均衡。感觉haproxy这款软件不错
  HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。 HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上
  可是因为haproxy只适用于unix linux操作系统,没有for windows版本,打算用cygwin编译一个haproxy for windows玩玩
  从http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.20.tar.gz下载文件
  放到cygwin的 home文件夹中执行命令
  tar -zxvfhaproxy-1.3.20.tar.gz
  cd haproxy-1.3.20
  make TARGET=cygwin
  结果出现错误,错误的大致意思是编译环境不支持ipv6协议 ,接着找cygwin的ipv6补丁
  下载地址http://win6.jp/Cygwin/index.html找到适合版本 解压到cygwin安装目录,覆盖掉一些文件。
  再次编译make TARGET=cygwin
  make install
  编译成功,提示文件生成路径等等 我的是在cygwin---- usr----local----sbin--文件夹下生成haproxy.exe
  然后测试运行
  把haproxy.exe复制出来到d:/haproxy
  还有cygwin的一些扩展文件都放到一起
  设置haproxy配置文件haproxy.cfg
  globallog 127.0.0.1   local0#log 127.0.0.1local1 notice#log loghost    local0 infomaxconn 1500chroot d:/haproxyuid haproxygid haproxy daemonnbproc 2pidfile d:/haproxy/haproxy.pid#debug#quietdefaultslog   127.0.0.1       local3mode    httpoptionhttplogoptionhttpcloseoptiondontlognulloptionforwardforoptionredispatchretries 2maxconn 2000balance roundrobinstats enablestats uri /ha?stats#haproxy运行状态查看 自定义uricontimeout      5000clitimeout      50000srvtimeout      50000listenweb_proxy 0.0.0.0:1080   #监听端口         option httpchk HEAD /check.txt HTTP/1.0   #健康检测 检测server web根目录有无此文件servers1 192.168.2.112:80 weight 3 checkserver s2 192.168.2.112:88 weight 3 check      
  和haproxy.exe在同一文件夹下面
  命令行下 运行 haproxy.exe -f haproxy.cfg -D 即可运行了
  #./haproxy –help //haproxy相关命令参数介绍.
haproxy   -f   <配置文件>   [-n 最大并发连接总数] [-N 每个侦听的最大并发数] [-d] [-D] [-q] [-V] [-c] [-p <pid文件>] [-s] [-l] [-dk]
   [-ds] [-de] [-dp] [-db] [-m <内存限制M>] [{-sf|-st} pidlist...]
   -d   前台,debug模式
   -D   daemon模式启动
   -q   安静模式,不输出信息
   -V   详细模式
   -c   对配置文件进行语法检查
   -s   显示统计数据
   -l   显示详细统计数据
   -dk 不使用kqueue
   -ds 不使用speculative epoll
   -de 不使用epoll
   -dp 不使用poll
   -db 禁用后台模式,程序跑在前台
   -sf <pidlist>
   程序启动后向pidlist里的进程发送FINISH信号,这个参数放在命令行的最后
   -st <pidlist>
   程序启动后向pidlist里的进程发送TERMINATE信号,这个参数放在命令行的最后
  
  
  我把我编译好的haproxy for windows 放到我的资源中 有兴趣的话大家可以下载试试 希望能提宝贵意见
  
页: [1]
查看完整版本: cygwin编译windows下的haproxy笔记