随着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机器上。

***************当你发现自己的才华撑不起野心时,就请安静下来学习吧***************
分类: LB+HA
本文转自散尽浮华博客园博客,原文链接:http://www.cnblogs.com/kevingrace/p/6031392.html,如需转载请自行联系原作者

linux系统下对网站实施负载均衡+高可用集群需要考虑的几点相关推荐

  1. LVS+Keepalived-DR模式负载均衡高可用集群

    LVS+Keepalived DR模式负载均衡+高可用集群架构图 工作原理: Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能. VRRP,虚拟路由冗余协议,是针对路由器的 ...

  2. Lvs+keepAlived实现负载均衡高可用集群(DR实现)

    第1章 LVS 简介 1.1 LVS介绍 LVS是Linux Virtual Server的简写,意为Linux虚拟服务器,是虚拟的服务器集群系统,可在UNIX/LINUX平台下实现负载均衡集群功能. ...

  3. LVS+Keepalive 实现负载均衡高可用集群

    一.LVS 介绍 目前LVS已经被集成到Linux内核模块中.LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器,该项目在Linux内核中实现了基于IP的数据请求负载均 ...

  4. lvs负载均衡—高可用集群(keepalived)

    基本概念: 什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了,也就是所谓的高可用或热备,用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统 ...

  5. linux虚拟机主从实验,主从模型的ipvs高可用集群实验

    主从模型的ipvs高可用集群实验 一.实验拓图 二.实验环境 本实验是keepalived+lvs-dr的高可用负载均衡实验 本实验是在虚拟机上完成,因此如上拓扑图需要准备至少四台虚拟机 1.各节点的 ...

  6. linux中的keeplived源码装,Keepalived高可用集群搭建

    1.Keepalived简介 Keepalived是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障.使用多台节点安装keepalived.其他的节点用来提供真实的服务,同样 ...

  7. linux集群-keepalived介绍-用keepalived配置高可用集群

    2019独角兽企业重金招聘Python工程师标准>>> linux集群介绍: 以功能划分:高可用和负载均衡 高可用集群:通常为两台服务器,一台工作,另外一台作为冗余.实现高可用的开源 ...

  8. linux高可用集群(HA)原理详解

    高可用集群 一.什么是高可用集群 高可用集群就是当某一个节点或服务器发生故障时,另一个节点能够自动且立即向外提供服务,即将有故障节点上的资源转移到另一个节点上去,这样另一个节点有了资源既可以向外提供服 ...

  9. 负载均衡集群、高可用集群详解,DR、NAT超详细搭建步骤

    集群概述 流量相关:     PV:PV(page view)即页面浏览量或点击量,是衡量一个网站或网页用户访问量.具体的说,PV值就是所有访问者在24小时(0点到24点)内看了某个网站多少个页面或某 ...

最新文章

  1. 希捷发布CORTX对象存储软件与开源社区,普惠超大规模数据存储
  2. 最简单的iOS网络请求
  3. yum源无法安装mysql_Centos7上使用官方YUM源安装Mysql
  4. Java黑皮书课后题第8章:*8.2(求矩阵对角线元素的和)使用下面的方法头编写一个方法,求n*n的double类型矩阵中主对角线上所有数字的和。编写一个程序,读取一个4*4的矩阵,显示主对角线和
  5. QT乱码总结4.细谈本地编码
  6. js中的墙头草---this
  7. clojure with postgres
  8. python文件操作的方法_python文件操作的方法介绍
  9. appium+python的APP自动化(1)
  10. java软件工程师自我评价_Java工程师自我评价如何写?
  11. 微信表情包批量导出-2022年8月4日
  12. vue使用FlexPaperViewer插件 预览swf文件 pdf转swf文件
  13. 爬虫实战:遇上gb2312编码的网页
  14. SEO网站优化注意5个小细节,降低网站跳出率
  15. 对概念模型的简单介绍
  16. 树莓派搭建LAMP和FTP服务器
  17. 根据string查询是否是当月_发票勾选、查询、认证等25问!简直太全了!打印出来贴在桌子上学习!...
  18. php onlyoffice,快速增长的ONLYOFFICE平台带来重大更新以响应用户需求
  19. Android App 专项性能监控工具
  20. 【图像视觉基础】浅谈CCD和CMOS相机的联系和区别

热门文章

  1. 【小白的CFD之旅】20 计算区域的构建
  2. 记一次修复被篡改的IE首页
  3. mysql mac客户端: sequel,mysql-workbench
  4. 思科2015校园招聘笔试面试总结
  5. MySQL检查冗余索引代码
  6. 深度优先搜索(dfs),城堡问题
  7. 我进公司当Android开发实习生时,初中最差的同学成了我的领导
  8. 转 java学习笔记(必看经典)
  9. 广度优先搜索 BFS算法
  10. mysql子查询批量找id最大的