设为首页 收藏本站
查看: 1152|回复: 0

[经验分享] linux系统下对网站实施负载均衡+高可用集群需要考虑的几点

[复制链接]

尚未签到

发表于 2017-6-25 06:41:10 | 显示全部楼层 |阅读模式
  随着linux系统的成熟和广泛普及,linux运维技术越来越受到企业的关注和追捧。在一些中小企业,尤其是牵涉到电子商务和电子广告类的网站,通常会要求作负载均衡和高可用的Linux集群方案。
  那么如何实施linux集群架构,才能既有效保证网站健康运行,又能节省运维成本呢?
下面依据近几年的运维经历,简单梳理下自己的一点感悟。
  (1)
机房的选择
如果有自己公司的机房那是再好不过的了;如果没有,建议放在BGP机房内托管,如果有选择的话,最好是选择带有硬件防火墙的机房,这样在安全方面也有保障;
网站如若是放在IDC机房托管,而机房最前面也没有硬件防火墙防护时,要尽量做好流量监控的工作(尤其是nginx/haproxy负载机的流量),一般选用zabbix/cacti监控软件.
服务器的选择
一切以稳定为前提和原则,在价格能得到公司接受的情况下,可以选择像IBM和DELL的品牌服务器,质量有保障。
在服务器资源紧张的情况下,可以部署openstack虚拟化(kvm),虚拟机可以充当test机器,beta机器以及对内业务部署机,充分利用机器资源。
  (2)负载均衡+高可用集群方案的选择
负载均衡实施
一种是通过硬件来实施
常见的硬件有比较昂贵的NetScaler、F5、Radware和Array等商用的负载均衡器,优点是有专业团队来维护,缺点是花销太大,对于网络规模较小的企业网站来说没有必要;
一种是通过开源免费负载均衡软件策略实施
常用的是LVS、HAProxy、Nginx负载均衡,这些都是通过软件级别来实现,费用非常低廉,对于中小企业来说,鉴于成本问题,选择这一种比较靠谱。
  高可用实施
首推是Nginx/HAProxy+Keepalived的架构,那么为什么不选择基于LVS+Keepalived的集群方案呢?
因为我们部署的网站一般都会涉及到动静分离、正则分发的需求,如果网站最前面选用LVS+Keepliaved架构,那么至少又要在中间加一层二级负载均衡的机器,这样比较耗机器,无形中也会增加整个网站的成本;
  有人会认为Nginx/HAProxy+Keepalived的稳定性不如LVS+Keepalived,其实这是个误解!
通过近几年的观察期,加上十几个项目的成功实施,发现Nginx/HAProxy+Keepalived的负载均衡器的稳定性很好,尤其是Haproxy+keepalive在高并发的情况下宕机可能性微乎其微。
一个朋友的公司在近段时间实施的一个商业网站用的是HAProxy+Keepalived,在亿/日高并发流量的冲击下,HAProxy稳如磐石。
LVS在性能方面是公认最好的,尤其是后面的节点(如Web或MySQL数据库服务器)超过10台时,它的性能是最优异的。
中小公司的并发和流量一般不是特别大,每日pv持续在百万之内的,推荐使用Nginx/HAProxy+Keepalived。
  负载均衡+高可用方案在节省成本的提前下,一般需要多少台服务器?
一般来说,中小网站采用2+2+2架构即可。最前面是2台Nginx/HAProxy+Keeplaived机器,后面是2台配置比较好的web机器;数据库2台,一主一从方式。
  服务器之间的数据同步采用rsync+inotify实时同步方案。如果时效性不是那么高,可以采用纯rsync方式,结合crontab进行定时同步。
  如果对文件服务器有更高要求比如图片类型,可以考虑再增加2台服务器,做成DRBD+Heartbeat+NFS方式;
如果有海量文件需要存储的话,还可以考虑用MFS,当然这样也是比较耗机器的。
  (3)集群架构中同步session问题
中小型网站可以采用Nginx的ip_hash和HAProxy的balance source机制,它们的原理比较类似,都会让某一客户机在相当长的一段时间内只访问固定的后端的某台真实的Web服务器,这样会话就会得以保持,我们在网站页面进行login的时候,
就不会在后面的web服务器之间跳来跳去了,自然也不会出现登陆一次后网站又提醒你没有登陆需要重新登陆的情况;
  如果是大型项目或网站可以考虑用memcached的方式。
  session共享问题可以参考:http://www.cnblogs.com/kevingrace/p/6031356.html
  (4)web服务选择Apache or Nginx
在网站流量和并发不大的环境下,完全可以选择Apache作为Web服务,虽然它的抗并发能力不高,但它的稳定性是最好的,许多电子商务网站都是基于Apache;
如果网站是大流量大并发的环境下,强烈推荐Nginx作为web服务。
  (5)数据库方案:Master-Slave
中小型企业网站,Mysql数据库采用一主一从方案即可满足业务需求,然后看起来比较单一,但是事实证明,这种设计的稳定性也是非常靠谱的!
经验证,采用mysql一主一从方案好多年的网站,很少没有因为数据库的故障发生过丢数据现象。
网站上线的前期阶段,可以通过PHP程序,把后台的查询功能的入口选择Slave机器,这样可以大大减少主数据库的压力;
Slave机器并非仅仅只起一个备份和备机的作用,完全可以通过Php程序将后台的复杂查询转到从MySQL机器上。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-387791-1-1.html 上篇帖子: DELL RACADM 工具使用介绍 下篇帖子: [dpdk] 熟悉SDK与初步使用 (一)(qemu搭建实验环境)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


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


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表