测试后发现,haproxy2.0和之前的版本部署有些许差异,配置文件的写法也是不同的

测试环境:Centos7.3

IP:172.16.1.227

  172.16.1.228 部署httpd,页面内容为this is 228

  172.16.1.230 部署httpd,页面内容为默认内容

部署步骤:

1.1需要先安装lua5.3版本,否则后面后报错

curl -R -O http://www.lua.org/ftp/lua-5.3.5.tar.gz
yum install readline-devel gcc -y
tar zxvf lua-5.3..tar.gz
cd lua-5.3.
make linux
make INSTALL_TOP=/usr/local/lua install
yum install systemd-devel wget openssl openssl-devel -y

1.2部署haproxy。可以看到安装PREFIX指定的安装目录为/usr/local/haproxy 。haproxy还可以到这个地址下载https://src.fedoraproject.org/repo/pkgs/haproxy/

cd
wget https://www.haproxy.org/download/2.0/src/haproxy-2.0.1.tar.gz
tar zxvf haproxy-2.0..tar.gz
cd haproxy-2.0.1
make -j $(nproc) TARGET=linux-glibc USE_OPENSSL= USE_ZLIB= USE_LUA= LUA_LIB=/usr/local/lua/lib/ LUA_INC=/usr/local/lua/include/ USE_PCRE= USE_SYSTEMD=
make install PREFIX=/usr/local/haproxy
cd

1.3创建运行用户(应该也可忽略,只是使用该用户运行,加强安全而已。我一般是直接使用root用户运行)

useradd haproxy -s /sbin/nologin

1.4创建配置文件haproxy.cfg。在安装目录/usr/local/hadproxy下新建haproxy.cfg,内容如下 配置文件参考链接:https://blog.csdn.net/genglei1022/article/details/83374188

[root@node2 haproxy]# cat haproxy.cfg
global  #全局设置
   daemon  #以后台进程运行
   maxconn 256  #每个进程的最大连接数
   nbproc 1  #进程数,该值可以设置小于或等于cpu核心数

  balance roundrobin #默认的负载均衡的方式,轮询方式
#balance source #默认的负载均衡的方式,类似nginx的ip_hash
#balance leastconn #默认的负载均衡的方式,最小连接

defaults  #默认设置
  mode http  #设置http(七层模式),也可设置为tcp(四层模式),另外还有一个Health健康监测模式。对mysql进行负载均衡的话,这里记得修改为tcp
  timeout connect 5000ms
  timeout client 50000ms
  timeout server 50000ms
  

listen admin_stats #配置haproxy管理页面
  bind *:9999  #访问端口为9999
  mode http
  option httplog
  stats refresh 30s  #自动刷新时间
  stats uri /stats  #项目名为status,ip+端口+项目名即可访问
  stats auth admin:admin  #配置管理用户账号密码
  stats admin if TRUE
  stats hide-version

frontend http-in  #配置前端访问端口
  bind *:1080  #通过该端口进行负载均衡
  default_backend servers  #指定后端服务器

backend servers
  server server1 172.16.1.230:80 check inter 2000 rise 3 fall 3 weight 1 maxconn 32  

  #建议加上check,否则后台服务器A宕机了,负载均衡还会把请求发送到该宕机服务器上,inter 2000指check检测时间为2000毫秒,rise 3检测3次均正常则表示后天服务器正常,fall 3检测3次失败,则会把该后天服务器标志宕机,不再玩该后台服务器发送请求,weight 1指权重,取消weight改为backup,则是所有后台服务器宕机后才会启用该backup后台服务器
  server server2 172.16.1.227:80 check inter 2000 rise 3 fall 3 weight 1 maxconn 32

1.5使用指定配置文件运行haproxy。建议都haproxy和hadproxy.cfg都使用绝对路径

/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

1.6测试效果

其中228的80端口上我启用了httpd,页面内容为this is 228.另外一台230上的80端口也是httpd,页面为默认内容。使用谷歌浏览器访问172.16.1.227,每次刷新的内容都和上一次不一样

haproxy2.0入门部署教程的更多相关文章

  1. surging+CentOS7+docker+rancher2.0 入门部署教程

    准备工作 开发环境  Visual Studio 2017 15.5 运行环境  虚拟机CentOS 7+Docker+Rancher 2.0+Consul+RabbmitMQ 项目下载地址  htt ...

  2. Omnet++ 4.0 入门实例教程

    http://blog.sina.com.cn/s/blog_8a2bb17d01018npf.html 在网上找到的一个讲解omnet++的实例, 是4.0下面实现的. 我在4.2上试了试,可以用. ...

  3. DWR 3.0 入门示例教程

    DWR(Direct Web Remoting) DWR is a Java library that enables Java on the server and JavaScript in a b ...

  4. jsf2入门视频 教程

    jsf2.0 入门视频 教程   需要的看下.初次录视频.还有很多需要完善. JSF交流QQ群84376982 JSF入门视频下载地址  http://pan.baidu.com/s/1jG3y4T4 ...

  5. Solr7.3.0入门教程,部署Solr到Tomcat,配置Solr中文分词器

    solr 基本介绍 Apache Solr (读音: SOLer) 是一个开源的搜索服务器.Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现.Apache ...

  6. Taurus.MVC 微服务框架 入门开发教程:项目部署:1、微服务应用程序常规部署实现多开,节点扩容。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

  7. Taurus.MVC 微服务框架 入门开发教程:项目部署:2、让Kestrel支持绑定多个域名转发,替代Ngnix使用。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

  8. Taurus.MVC 微服务框架 入门开发教程:项目部署:3、微服务应用程序版本升级:全站升级和局部模块升级。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

  9. Taurus.MVC 微服务框架 入门开发教程:项目部署:4、微服务应用程序发布到Docker部署(上)。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...

随机推荐

  1. CentOS6.5_x64上简单编译配置Heartbeat3.0.4

    Heartbeat 3与 2.x的最大差别在于,3 按模块把的原来2.x 拆分为多个子项目,并且提供了一个cluster-glue的组件,专用于Local ResourceManager 的管理.即h ...

  2. qt事件机制(转)

    学习了一段时间的Qt之后,发现Qt的事件机制和其他语言的机制有些不同.Qt除了能够通过信号和槽机制来实现一些Action动作之外,还可以用对象所带的事件,或者用户自定义的事件来实现对象的一些行为处理. ...

  3. JQ js 对数组的操作

    1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限, ...

  4. datediff(date1,date2) 函数的使用

    版权声明:本文为博主原创文章,未经博主允许不得转载. 在MySQL中可以使用DATEDIFF()函数计算两个日期之间的天数 语法: datediff(date1,date2) 注:date1和date ...

  5. MySQL 日期格式化,取年月日等相关操作

    日期取年.月.日 select id, phone,time,year(time),month(time), DAY(time),TIME(time) from user where phone='x ...

  6. Python 3.6 抓取微博m站数据

    Python 3.6 抓取微博m站数据 2019.05.01 更新内容 containerid 可以通过 "107603" + user_id 组装得到,无需请求个人信息获取: 优 ...

  7. POJ P2251 Dungeon Master 题解

    深搜,只不过是三维的. #include<iostream> #include<cstring> #include<cstdio> #include<algo ...

  8. circus security 来自官方的安全建议

    转自:https://circus.readthedocs.io/en/latest/design/security/ Circus is built on the top of the ZeroMQ ...

  9. [RN] React Native 常见基本问题归纳总结

    [RN] React Native  常见基本问题归纳总结 本问题总结涉及到版本为: "react": "16.8.3","react-native& ...

  10. 初试angularjs动画(animate)

    angularjs不同版本的代码写法各有千秋,动画模块的写法也各有不同,以下是收集到的两大版本的写法,各位请: angularjs1.1.5版本(1.2之前) index.html代码: <!D ...