在Windows进下build 高可用负载均衡与反向代理神器:HAProxy
前言
HAProxy是一个款基于Linux的开源高可用的负载均衡与反向代理工具,与Nginx大同小异。
搜遍了全网,几乎都是基于Linux平台。Windows平台的要么就是多年前的旧版本,要么就是不兼容OpenSSL,无法进行HTTPS请求,要么就是花钱买但又觉得不一定适用。
索性花了小半天时间研究了下,成功build出基于windows的haproxy2.2.4(最新版本是2.2.5,因担心最版本的稳定性,所以往前了一个小版本)。
安装cygwin
- 下载cygwin(https://cygwin.com/install.html)。
- 安装cygwin。
- 设置下载源的时候简易使用网易源(http://mirrors.163.com/cygwin/)。

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

- 重复上一步骤,搜索并安装make tools,这个是OPENSSL所必需的,否则将会报错(多么痛的领悟)。
安装HAProxy
- 下载haproxy (https://www.haproxy.org/download/2.2/src/),这个是所有2.2大版本的目录,博主选择V2.2.4。
- 下载完成后,拷贝到cygwin的home目录下,并运行cygwin.bat,解压命令:tar -zxvf haproxy-2.2.4.tar.gz。

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

- 然后输入命令:make install,之后在解压文件夹里即可找到haproxy.exe。
- 将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文件
这个应该很简单,也不一一赘述了。
测试
- 当启动haproxy的时,可以通过config文件的listen的端口,查看haproxy的traffic stats。
- 本地新建一个网站,这个网站的端口不能和haproxy fontend 的端口冲突,否则haproxy将启动失败,之后浏览器访问fontend端口将全部跳转到backend端口。
- 当有多个backend时,会根据配置的算法将请求分发出去,以达到load balance。
测试的时候忘了截图,有点干,朋友将就将就。
在Windows进下build 高可用负载均衡与反向代理神器:HAProxy的更多相关文章
- LVS + KEEPALIVED + WINDOWS SERVER 2008 R2 ------高可用负载均衡(转)
工作原理此处不作讲解,自己去官方网站学习(http://www.linuxvirtualserver.org),这里重点讲如何配置!注:最好从官方网站对其进行了解,不至于会对某些问题产生误解,尽管是英 ...
- Dubbo入门到精通学习笔记(二十):MyCat在MySQL主从复制的基础上实现读写分离、MyCat 集群部署(HAProxy + MyCat)、MyCat 高可用负载均衡集群Keepalived
文章目录 MyCat在MySQL主从复制的基础上实现读写分离 一.环境 二.依赖课程 三.MyCat 介绍 ( MyCat 官网:http://mycat.org.cn/ ) 四.MyCat 的安装 ...
- haproxy+keepalived实现高可用负载均衡
软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现.LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载. HA ...
- haproxy+keepalived实现高可用负载均衡(转)
软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现.LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载. ...
- RabbitMQ(四):使用Docker构建RabbitMQ高可用负载均衡集群
本文使用Docker搭建RabbitMQ集群,然后使用HAProxy做负载均衡,最后使用KeepAlived实现集群高可用,从而搭建起来一个完成了RabbitMQ高可用负载均衡集群.受限于自身条件,本 ...
- CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡
一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2.6.32-279.el6.i686 LVS版本:ipvsadm-1.26 keepalive ...
- 转载--CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡
源地址:http://www.cnblogs.com/mchina/archive/2012/08/27/2644391.html 一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台: ...
- RHEL 5.4下部署LVS(DR)+keepalived实现高性能高可用负载均衡
原文地址:http://www.cnblogs.com/mchina/archive/2012/05/23/2514728.html 一.简介 LVS是Linux Virtual Server的简写, ...
- CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡【转】
CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡 一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2 ...
随机推荐
- ubuntu20 使用命令安装 nginx
安装 nginx sudo apt-get install nginx -y 配置文件 nginx 服务管理 # 启动 nginx 服务 service nginx start # 关闭 nginx ...
- 【UR #13】Yist
UOJ小清新题表 题目摘要 UOJ链接 给出一个排列 \(A\) 以及它的一个非空子序列 \(B\),给出一个 \(x\) 并进行若干次操作,每一次操作需要在 \(A\) 中选择一个长度恰好为 \(x ...
- k8s- centos7.8搭建
vmware16.0 centos7.8 1. 使用vmware安装 centos环境 cpu4个 内存4G 网络nat模式 2.配置网络 vim /etc/sysconfig/network-sc ...
- spring boot:swagger3的安全配置(swagger 3.0.0 / spring security / spring boot 2.3.3)
一,swagger有哪些环节需要注意安全? 1,生产环境中,要关闭swagger application.properties中配置: springfox.documentation.swagger- ...
- git stash功能的使用
一,git stash的作用: 能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录 说明:架构森林是一个专注架构的博客,地址:https://www.cnblogs.com ...
- php查看进程
index.php <?php /** * Created by PhpStorm. * User: mac * Date: 2020/4/23 * Time: 21:57 */ echo ...
- 第六章 Linux系统之文件管理
一.文件管理概述 1.对文件做些什么? 谈到Linux文件管理,首先我们需要了解的就是,我们要对文件做些什么事情? 其实无非就是对一个文件进行创建.复制.移动.查看.编辑.压缩.查找.删除等等 2.内 ...
- linux 查看nginx的安装路径等信息
做个随笔,记录一下. 想查看nginx的配置文件,但不知道nginx是安装在哪个目录下? ps -ef | grep nginx Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的 ...
- CDH+Kylin三部曲之三:Kylin官方demo
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Vulkan Driver for VC4(Raspberry Pi 3b) base on mesa
这是一篇关于在raspberry Pi 3b上移植实现vulkan 驱动的文章. 经过一段时间的代码搬运,终于实现了零的突破,可以在树莓派3B上运行Vulkan triangle/texture.当然 ...