前言

HAProxy是一个款基于Linux的开源高可用的负载均衡与反向代理工具,与Nginx大同小异。

搜遍了全网,几乎都是基于Linux平台。Windows平台的要么就是多年前的旧版本,要么就是不兼容OpenSSL,无法进行HTTPS请求,要么就是花钱买但又觉得不一定适用。

索性花了小半天时间研究了下,成功build出基于windows的haproxy2.2.4(最新版本是2.2.5,因担心最版本的稳定性,所以往前了一个小版本)。

安装cygwin

  1. 下载cygwin(https://cygwin.com/install.html)。
  2. 安装cygwin。
  3. 设置下载源的时候简易使用网易源(http://mirrors.163.com/cygwin/)。

  4. 选择Category 并且搜索gcc,点击Devel。

  5. 重复上一步骤,搜索并安装make tools,这个是OPENSSL所必需的,否则将会报错(多么痛的领悟)。

安装HAProxy

  1. 下载haproxy (https://www.haproxy.org/download/2.2/src/),这个是所有2.2大版本的目录,博主选择V2.2.4。
  2. 下载完成后,拷贝到cygwin的home目录下,并运行cygwin.bat,解压命令:tar -zxvf haproxy-2.2.4.tar.gz。

  3. 然后输入命令:make TARGET=cygwin USE_PCRE=1 USE_REGPARM=1 USE_STATIC_PCRE=1 USE_OPENSSL=1,后面几个参数很重要,都是OPENSSL加密所需。

  4. 然后输入命令:make install,之后在解压文件夹里即可找到haproxy.exe。
  5. 将haproxy.exe文件和cygwin1.dll文件拷贝到一个新文件夹(haproxy-openssl-2.2.4)。

运行haproxy

1.创建一个config文件

global

nbproc 1

daemon

ssl-default-bind-options force-tlsv12

defaults

timeout connect 90000ms

timeout client 90000ms

timeout server 90000ms

frontend HaProxy

bind *:80

redirect scheme https if !{ ssl_fc }

bind *:443

mode http
default_backend AlphaServer

backend OmniServer

mode http

balance roundrobin

server AlphaServer localhost:4433

listen admin_status

bind *:1188

mode http

stats refresh 30s

stats uri /

stats auth haproxy:haproxy

stats admin if TRUE

关于配置文件的含义,就不具体解释了,朋友们可以网上查一查。

2.创建start/stop的bat文件

这个应该很简单,也不一一赘述了。

测试

  1. 当启动haproxy的时,可以通过config文件的listen的端口,查看haproxy的traffic stats。
  2. 本地新建一个网站,这个网站的端口不能和haproxy fontend 的端口冲突,否则haproxy将启动失败,之后浏览器访问fontend端口将全部跳转到backend端口。
  3. 当有多个backend时,会根据配置的算法将请求分发出去,以达到load balance。

测试的时候忘了截图,有点干,朋友将就将就。

在Windows进下build 高可用负载均衡与反向代理神器:HAProxy的更多相关文章

  1. LVS + KEEPALIVED + WINDOWS SERVER 2008 R2 ------高可用负载均衡(转)

    工作原理此处不作讲解,自己去官方网站学习(http://www.linuxvirtualserver.org),这里重点讲如何配置!注:最好从官方网站对其进行了解,不至于会对某些问题产生误解,尽管是英 ...

  2. Dubbo入门到精通学习笔记(二十):MyCat在MySQL主从复制的基础上实现读写分离、MyCat 集群部署(HAProxy + MyCat)、MyCat 高可用负载均衡集群Keepalived

    文章目录 MyCat在MySQL主从复制的基础上实现读写分离 一.环境 二.依赖课程 三.MyCat 介绍 ( MyCat 官网:http://mycat.org.cn/ ) 四.MyCat 的安装 ...

  3. haproxy+keepalived实现高可用负载均衡

    软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现.LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载. HA ...

  4. haproxy+keepalived实现高可用负载均衡(转)

      软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现.LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载. ...

  5. RabbitMQ(四):使用Docker构建RabbitMQ高可用负载均衡集群

    本文使用Docker搭建RabbitMQ集群,然后使用HAProxy做负载均衡,最后使用KeepAlived实现集群高可用,从而搭建起来一个完成了RabbitMQ高可用负载均衡集群.受限于自身条件,本 ...

  6. CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡

    一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2.6.32-279.el6.i686 LVS版本:ipvsadm-1.26 keepalive ...

  7. 转载--CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡

    源地址:http://www.cnblogs.com/mchina/archive/2012/08/27/2644391.html 一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台: ...

  8. RHEL 5.4下部署LVS(DR)+keepalived实现高性能高可用负载均衡

    原文地址:http://www.cnblogs.com/mchina/archive/2012/05/23/2514728.html 一.简介 LVS是Linux Virtual Server的简写, ...

  9. CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡【转】

    CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡   一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2 ...

随机推荐

  1. JVM(五):JVM模型与GC

    确定垃圾 引用计数(存在循环引用问题) 根可达算法 常见的垃圾回收算法 标记清除算法-位置不连续,产生碎片 拷贝算法- 没有碎片,浪费空间 标记压缩-没有碎片,效率偏低(多线程需要进行线程同步,单线程 ...

  2. 多测师讲解selenium _a标签定位()_高级讲师肖sir

    shift+ctrl+c 快捷键  调出元素

  3. 多测师讲解htm_L标题标签001_高级讲师 肖sir

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>百 ...

  4. JavaWeb01_html&css

    一. html简介 1. 什么是html ①. HyperText Markup Language:超文本标记语言,是最基本的网页语言 ②. 超文本:超出文本范畴 ③. 标记:标记就是标签,html所 ...

  5. vbox挂载共享文件夹

      版权 挂载共享文件夹很简单,有2种方法,1是自动挂载,2是手动挂载. 一.自动挂载步骤: 1,把想共享的文件夹设置为共享. 2,在virtualbox界面对虚拟机设置共享文件夹,如下图.

  6. canal 整合RabbitMQ

    环境如下: canal: 1.15-alpha-1 mysql  5.6.49 rabbitmq 3.7.14 Erlang 21.3 canal 安装和启动 见上篇文章 canal快速安装启动 但是 ...

  7. 第二十三章 Firewalld的防火墙

    一.防火墙基本概述 在CentOS7系统中集成了多款防火墙管理工具,默认启用的是firewalld(动态防火墙管理器)防火墙管理工具,Firewalld支持CLI(命令行)以及GUI(图形)的两种管理 ...

  8. Linux基础命令之getent

    getent命令简述 getent - get entries(entry的复数,条目.项目.记载.记录) getent命令可以用来察看系统的数据库中的相关记录 经常使用getent查看用户账号: 之 ...

  9. Linux 发行版本简介

    1991年的10月5日Linus Benedict Torvalds在comp.os.minix 新闻组上发布消息,正式向外宣布他自行编写的完全自由免费的内核诞生(Freeminix-like ker ...

  10. 一文带你趟过mac搭建appium测试环境的遇到的坑

    做UI自动化,最难的一步就是在环境搭建上,怎么去搭建一个UI自动化测试的环境,会难住很多人,在Mac上搭建appium如何搭建呢,本文带着大家去领略如何在mac上搭建appium测试环境.下面就是详细 ...