设为首页 双色球直播

排列五开奖号码: 双色球直播

查看: 1323|回复: 0
打印 上一主题 下一主题

[经验分享] HAProxy负载均衡

[复制链接]
累计签到:1 天
连续签到:1 天
跳转到指定楼层
1#
发表于 2018-4-9 13:28:24 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
在大型系统设计中用代理在负载均衡是最常见的一种方式,而相对靠谱的解决方案中Nginx、HAProxy、LVS、F5在各大场中用得比较普遍,各有各的优势和使用场景,由于本次要使用到TCP,因此Nginx只能在HTTP层负载,因此用HAProxy来负载,为什么不用LVS?因为配置太麻烦。
HAProxy是免费、极速且可靠的用于为TCP和基于HTTP应用程序提供高可用、负载均衡和代理服务的解决方案,尤其适用于高负载且需要持久连接或7层处理机制的web站点。HAProxy还可以将后端的服务器与网络隔离,起到?;ず蠖朔衿鞯淖饔?。HAProxy的负载均衡能力虽不如LVS,但也是相当不错,而且由于其工作在7层,可以对http请求报文做深入分析,按照自己的需要将报文转发至后端不同的服务器(例如动静分离),这一点工作在4层的LVS无法完成。
环境
CentOS6.X
HAProxy 1.7.3
用root用户安装
下载
若在线安装不用下载,可直接通过yum命令安装(建议),不过需要联网。
去官网下载 ://www.haproxy.org/download/1.7/src/haproxy-1.7.3.tar.gz
下载后放进CentOS中的/usr/local/  文件夹中(至于怎么放,你不会 这个锅我不背,去学学Linux 操作基?。?br /> 关闭SElinux、配置防火墙
vi /etc/selinux/config#SELINUX=enforcing #注释掉#SELINUXTYPE=targeted #注释掉SELINUX=disabled#增加:wq!#保存退出setenforce 0#使配置立即生效
vi /etc/sysconfig/iptables#编辑-A RH-Firewall-1-INPUT -d 224.0.0.18 -j ACCEPT#允许组播地址通信(在做keepalived时用得到)-A RH-Firewall-1-INPUT -p    vrrp    -j ACCEPT#允许VRRP(虚拟路由器冗余协)通信-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT#允许80端口通过防火墙:wq!#保存退出service iptables restart#重启防火墙使配置生效
创建HAProxy运行账户和组
[[email protected] local]#groupadd haproxy #添加haproxy组[[email protected] local]#useradd -g haproxy haproxy -s /bin/false #创建nginx运行账户haproxy并加入到haproxy组,不允许haproxy
安装
分两种:
1、在线装:yum install haproxy (建议)
2、安装包:
环境中要有gcc,用于编译,一般安装环境时都会有,若没有 运行 :
yum install -y gcc
进入local文件夹中
[[email protected] ~]#cd /usr/local
然后解压下载好haproxy包到当前文件夹
[[email protected] local]#tar -zxvf haproxy-1.7.3.tar.gz[[email protected] local]#cd haproxy-1.7.3
安装
[[email protected] haproxy-1.7.3]#make TARGET=linux3100 CPU=x86_64 PREFIX=/usr/local/haproxy-1.7.3 #编译(源码才需要)  uname -r #查看系统内核版本号[[email protected] haproxy-1.7.3]#make install PREFIX=/usr/local/haproxy-1.7.3 #安装 haproxy-1.7.3为解压后的文件路径(很重要)
设置HAProxy
mkdir -p /usr/local/haproxy-1.7.3/conf#创建配置文件目录
mkdir -p /etc/haproxy#创建配置文件目录
touch /usr/local/haproxy-1.7.3/conf/haproxy.cfg#创建配置文件
ln -s /usr/local/haproxy-1.7.3/conf/haproxy.cfg  /etc/haproxy/haproxy.cfg#添加配置文件软连接
cp -r /usr/local/haproxy-1.7.3/examples/errorfiles  /usr/local/haproxy-1.7.3/errorfiles#拷贝错误页面
ln -s /usr/local/haproxy-1.7.3/errorfiles  /etc/haproxy/errorfiles#添加软连接
mkdir -p /usr/local/haproxy-1.7.3/log#创建日志文件目录
touch /usr/local/haproxy-1.7.3/log/haproxy.log#创建日志文件
ln -s /usr/local/haproxy-1.7.3/log/haproxy.log  /var/log/haproxy.log#添加软连接
cp /usr/local/haproxy-1.7.3/examples/haproxy.init  /etc/rc.d/init.d/haproxy#拷贝开机启动文件
chmod +x /etc/rc.d/init.d/haproxy#添加脚本执行权限
chkconfig haproxy on#设置开机启动
ln -s /usr/local/haproxy-1.7.3/sbin/haproxy  /usr/sbin#添加软连接
注意上面的文件夹,若与上面的文件夹路径一致,可以直接复制运行。
配置haproxy.cfg参数
vi  /usr/local/haproxy-1.7.3/conf/haproxy.cfg#编辑
这里是最关键的设置,在此有两个相同的服务由两台服务器提供:192.168.30.33,192.168.30.34
#---------------------------------------------------------------------#Global settings#---------------------------------------------------------------------globallog127.0.0.1 local2###[err warning info debug]chroot/usr/local/haproxy-1.7.3pidfile/var/run/haproxy.pid###haproxy的pid存放路径,启动进程的用户必须有权限访问此文件maxconn  4000###最大连接数,默认4000user  haproxy
group  haproxy
daemon###创建1个进程进入deamon模式运行。此参数要求将运行模式设置为"daemon"#---------------------------------------------------------------------#common defaults that all the 'listen' and 'backend' sections will#use if not designated in their block#---------------------------------------------------------------------defaults
mode  http###默认的模式,tcp是4层,http是7层,health只会返回OK若是混合模式则 mode 不需要设置logglobal###采用全局定义的日志option  dontlognull###不记录健康检查的日志信息option  httpclose###每次请求完毕后主动关闭http通道option  httplog###日志类别http日志格式混合模式 此处还需要加上 tcplog#option  forwardfor###如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ipoption  redispatch###serverId对应的服务器挂掉后,强制定向到其他健康的服务器timeout connect 10s#default 10 second timeout if a backend is not foundtimeout client 10s###客户端连接超时timeout server 10s###服务器连接超时maxconn    60000###最大连接数retries    3###3次连接失败就认为服务不可用,也可以通过后面设置########统计页面配置########listen admin_stats#监听端口bind 0.0.0.0:8089#启用状态监控stats enable
mode http
logglobal#统计页面URLstats uri /stats#统计页面密码框上提示文本stats realm Haproxy Statistics#统计页面用户名和密码设置stats auth admin:admin#隐藏统计页面上HAProxy的版本信息#stats hide-version#当通过认证才可管理stats adminifTRUE#统计页面自动刷新时间stats refresh 30s########WEB配置#################listen web1080
bind0.0.0.0:1080mode http
option httplog
logglobalmaxconn3000balance leastconnserver web33192.168.80.33:8007  weight 1 rise 2 fall 3server web34 192.168.80.34:8007 weight 1 rise 2 fall 3#---------------------------------------------------------------------#main frontend which proxys to the backends 这里不需要动静分离,所以全部注释掉#---------------------------------------------------------------------#frontend  main :5000#acl url_static      path_beg      -i /static /images /javascript /stylesheets#acl url_static      path_end      -i .jpg .gif .png .css .js#use_backend static          if url_static#default_backend            app#---------------------------------------------------------------------#static backend for serving up images, stylesheets and such#---------------------------------------------------------------------#backend static#balance    roundrobin#server      static 127.0.0.1:4331 check#---------------------------------------------------------------------#round robin balancing between the various backends#---------------------------------------------------------------------#backend app#balance    roundrobin#server  app1 127.0.0.1:5001 check#server  app2 127.0.0.1:5002 check#server  app3 127.0.0.1:5003 check#server  app4 127.0.0.1:5004 check#---------------------------------------------------------------------#round robin balancing between the various backends#---------------------------------------------------------------------#errorloc  503  //www.dh5vg.com.cn/404.htmlerrorfile 403 /etc/haproxy/errorfiles/403.http
errorfile500 /etc/haproxy/errorfiles/500.http
errorfile502 /etc/haproxy/errorfiles/502.http
errorfile503 /etc/haproxy/errorfiles/503.http
errorfile504 /etc/haproxy/errorfiles/504.http
统一绑定的对外接口为1080, 监控页面端口为8089。
启动
:wq!#保存退出
service haproxy start#启动
#设置开机启动
chkconfig haproxy on
设置HAProxy日志
vi  /etc/syslog.conf#编辑,在最下边增加#
haproxy.log
local0.  /var/log/haproxy.log
local1.  /var/log/haproxy.log
local2.  /var/log/haproxy.log
local3.  /var/log/haproxy.log
:wq!#保存退出
vi  /etc/sysconfig/rsyslog#编辑修改
SYSLOGD_OPTIONS="-r -m 0"#接收远程服务器日志
:wq!#保存退出
service rsyslog restart#重启syslog
监控页面
打开监控页面,用户名密码为admin,出现下面的页面就说明配置成功:
//192.168.30.32:8089/stats


service haproxy stop#关闭service haproxy restart#重启
扩展问题:
此处只做了简单的IP请求负载,还可以做TCP层的负载,但里面的设置需要根据自己的实际情况不停的压力测试进行调置。
此后还要做Keepalived + HAProxy 多机热备的负载实用方案。
还可做mysql的读写负载、动静态资源分离等等
ACL规则介绍
ACL控制哪些开放,往哪里转,哪些屏蔽 ,具体的内容网上也有介绍,此处只做抛砖引玉。
实例:实现动静分离功能
首先定义两个backend,分别以动态和静态进行分组
backend jingtai
balance roundrobin
server web1 10.0.10.82:80 check weight 1maxconn 2000
backend dongtai
balance roundrobin
server web2 10.0.10.83:80 check weight 1maxconn 3000
配置frontend
frontend web_server
bind :80
default_backend webservers
acl badguy src 10.0.10.1
acl denyfile path /1.html
#http-request deny if badguy denyfile
acl static path_end .html
use_backend jingtai if static
default_backend dongtai
定义acl名称为static ,如果访问匹配是.html的文件,那么直接跳转至jingtai 这个backend
如果访问的不匹配.html 那么直接跳转至默认backend dongtai组
+1 0

运维网声明 1、欢迎大家加入本站运维交流群:群①:263444886群②:197202523群③:485755530群④:201730672群⑤:202807635运维网交流群⑥:281548029
2、本站所有主题由该帖子作者发表,该帖子作者与双色球直播享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须注明原文的出处
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、双色球直播 - 服务您的运维操作管理专家!
6、联系人Email:[email protected] 网址:双色球直播 www.dh5vg.com.cn

点击关注更多内容
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则  允许回帖邮件提醒楼主

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服 E-mail:[email protected]

本站由青云提供云计算服务

运维网--中国最专业的运维工程师交流社区

京ICP备14039699号-1 Copyright ? 2012-2018

使用手机软件扫描微信二维码

关注我们可获取更多热点资讯

Good good study day day up !


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


独家合作伙伴: 青云cloud

快速回复 双色球直播 返回列表
  • 你看咱是跟帖还是在耍猴? 2018-12-17
  • 海拔4400米高山上的午餐 2018-12-17
  • 港珠澳大桥跨境私家车澳门配额接受申请 2018-12-17
  • 人工智能机遇与挑战 听听专家怎么说 2018-12-17
  • 勤劳只是致富的要素之一,生产力水平也是致富的要素之一。生产力水平低下导致农民勤劳却不能致富,因此,很多农民选择了进城打工。一个劳动力在刀耕火种的条件下,一年能够 2018-12-16
  • 比亚迪秦EV450 稳居北京市占率第一 2018-12-16
  • 陈越光:致敬国学是向良知致敬 在致敬中实现自我 2018-12-16
  • 昂首迈进下一个十年 试驾上汽大众全新一代朗逸 2018-12-15
  • 新华时评:品味文化远香 涵养文化自信 2018-12-15
  • 独家对话全国人大代表林龙安:推动香港与内地融合发展 2018-12-15
  • 宝马、MINI与劳斯莱斯多款车型召回 共涉及5829辆 2018-12-15
  • 车祸造成儿童严重外伤增多 使用儿童安全座椅很重要 2018-12-14
  • 官方:乌尔赖希当选为拜仁赛季最佳球员 2018-12-14
  • 透视5G投票风波:5G需要大合作,关键时刻不可自乱阵脚 2018-12-14
  • 【央广时评】发奋图强 倾全力建设海洋强国 2018-12-13
  • 313| 923| 283| 777| 286| 195| 223| 134| 600| 17|