小公司如何部署实施Linux集群网站

news/2024/5/11 2:38:24/文章来源:https://blog.csdn.net/newjueqi/article/details/7283511

出处:http://andrewyu.blog.51cto.com/1604432/710049

作者:抚琴煮酒


标签:小企业 Linux集群 小公司
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://andrewyu.blog.51cto.com/1604432/710049

其实在许多小公司和小企业里,尤其是牵涉到电子商务和电子广告类的网站,他们的网站也要求作负载均衡高可用的Linux集群,但由于成本的制约,老板都会要求系统架构师设计的方案能够用最少的钱实现这个要求,作为系统架构师的我们,应该如何实现这个要求呢?

首先是机房的选择,如果公司有自己的机房那是最好不过的了;如果没有自己的机房,我建议大家放在BGP机房内托管,如果有选择的话,最好是选择带有硬件防火墙的机房,这样在安全方面也有保障;另外,我们如何选择服务器呢?在有了负载均衡高可用的集群环境后,我们完全可以自己组装服务器,这样在性价比上也是最高的。像IBM和DELL的品牌服务器,虽然质量有保障,但价格往往是老板不能够接受的。当然了,一切以稳定为前提和原则。

首先是负载均衡设备的选择。我们可以有二种选择,一种是通过硬件来进行进行,常见的硬件有比较昂贵的NetScaler、F5、Radware和Array等商用的负载均衡器,它的优点就是有专业的维护团队来对这些服务进行维护、缺点就是花销太大,所以对于规模较小的网络服务来说暂时还没有需要使用;另外一种就是类似于LVS/HAProxy、Nginx的基于Linux的开源免费的负载均衡软件策略,这些都是通过软件级别来实现,所以费用非常低廉,小公司和小企业由于费用的问题,所以软件级别的负载均衡是第一选择。

至于负载均衡高可用架构,我首推是Nginx/HAProxy+Keepalived的架构,这时很多朋友就有疑问,说你为什么不选择基于LVS+Keepalived的集群方案呢?这是因为我们部署的网站一般都会有动静分离、正则分发的需求,如果我们最前面选用LVS+Keepliaved的架构,那么我们至少又要在中间加一层二级负载均衡的机器,这样比较耗机器,无形中也会增加整个网站的成本;另外,很多朋友都比较担心的一个问题,说Nginx/HAProxy+Keepalived的稳定性不如LVS+Keepalived,这个其实是误解;我们通过十几个项目的成功实施,再加上几年的观察期,发现这些软件级别的负载均衡器的稳定性确实很好,在高并发的情况下宕机的可能性微乎其微,而近段时间实施的一个商业网站,用的是HAProxy+Keepalived,在亿/日高并发流量的冲击下,HAProxy稳如磐石。LVS在性能方面是最好的,尤其是后面的节点(如Web或MySQL数据库服务器)超过10台时,它的性能是最优异的。而小公司的并发和流量一般不是特别大,大概一天持续在100万/日之间,所以我这里也向大家推荐Nginx/HAProxy+Keepalived。

如果网站是放在IDC机房托管,而机房最前面也没有硬件防火墙防护时,这时候大家尽量做好流量监控的工作,我一般会在主Nginx/HAProxy上安装MRTG+Nload软件来对流量进行监控,Nload可以对流量进行即时监控,它的安装也是很简单的,我们先安装好RPMForege。RPMforge是Centos系统下的软件仓库,拥用4000多种的软件包,被Centos社区认为是最安全也是最稳定的一个软件仓库,地址为http://pkgs.repoforge.org/rmpforge-release。这个安装成功以后,我们可以通过命令yum –y install nload很轻松的安装nload。输入此命令后,nload软件会很直观的显示流量的即时状态,上半部分ncoming是进入网卡的流量,下半部分Outgoing是从这块网卡出去的流量,每部分都有当前流量(Curr)、平均流量(Avg)、最小流量(Min)、最大流量(Max)、总流量(Ttl)。由于此软件比较直观,我用它来取代之前的即时流量监控软件iptraf,Nload的工作界面如下所示:

许多对集群感兴趣的朋友经常问我,如果网站要部署负载均衡高可用的Linux集群方案,而公司又想用最节省成本的方式来实施的话,一般需要几台服务器呢?我的回答是四台,即2+2架构,最前面是二台Nginx/HAProxy+Keeplaived机器,后面是二台配置比较好的Web机器,MySQL数据库采用一主一从的方式,分别放在二台Web机器上,监控的Nagios部署在从Nginx/HAProxy机器上,流量监控我一般放主Nginx/HAProxy,软件采用的是MRTG+Nload的方式,服务器之间的数据同步我采用的是rsync+inotify的方法,当然更多时候,我采用的是纯rsync方式,这样是避免网站有大文件发生改动的时候会产生频繁读盘的麻烦;当然了,如果大家的公司对文件服务器有更高要求的时候(比如图片类型的),我们可以考虑再增加二台服务器,做成DRBD+Heartbeat+NFS的方式;如果有海量文件需要存储的话,我们可以考虑用MFS,当然这样也是比较耗机器的。

像类似以上的小公司集群架构里,我们是如何解决session同步的问题呢?我们可以采用Nginx的ip_hash和HAProxy的balance source机制,它们的原理比较类似,都会让某一客户机在相当长的一段时间内只访问固定的后端的某台真实的Web服务器,这样会话就会得以保持,我们在网站页面进行login的时候,就不会在二台Web服务器之间跳来跳去了,自然也不会出现登陆一次后网站又提醒你没有登陆,需要重新登陆的情况;大型项目或网站可以考虑用memcached的方式。

另外,小公司的Web服务器我们至少有二种选择:一种是Apache,另一种是Nginx,在流量和并发不大的环境下,我们完全可以选择Apache作为我们的Web服务器,虽然它的抗并发能力不高,但它的稳定性是最好的,我的许多电子商务网站都是基于Apache;而大流量大并发的环境,我比较倾向于Nginx。

 MySQL在这里我用的就是一主一从的设计,虽然很多朋友觉得这种设计比较简单,但事实证明,它也最稳定的。我的电子商务网站也是采用这种架构,几年下来,从没有因为数据库的故障发生过丢单现象,网站上线的前期阶段,我们可以通过PHP程序,把后台的查询功能的入口选择Slave机器,这样可以大大减少主数据库的压力;另外,从MySQL机器并非仅仅只起一个备份和备机的作用,我们完全通过PHP程序将后台的复杂查询转到从MySQL机器上。当然了,MySQL的主从复制状态监控也是非常重要的,我一般是通过Nagios和SHELL脚本双监控的方式。

如何能帮企业节约和省钱,这其实也是系统管理员/架构师的一项工作职责,希望大家在工作中能领悟到这点。

本文出自 “抚琴煮酒” 博客,请务必保留此出处http://andrewyu.blog.51cto.com/1604432/710049


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_780776.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蚂蚁变大象:浅谈常规网站是如何从小变大的(一)

http://zgwangbo.blog.51cto.com/4977613/849529 标签:架构 web原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://zgwangbo.blog.51cto.com/4977613/849529【 前一段时间写了关…

为什么很多网站都去除oracle?

一个字,贵。你可以去Oracle官网看看Oracle的报价,一套Oracle database动辄几十万,或者按年付费,一年大几万,这还是一个CPU的价格。 碰到集群你就等着哭吧。人员培训也是问题。Mysql很多人学数据库的时候多多少少都会用…

大型网站架构演化发展历程

原文:http://www.cnblogs.com/JustOnly/p/4899615.html 前面已经描述了大型网站系统的特点,而对一个大型网站系统,其架构也是重要的一个环节。 大型网站技术主要的挑战来自于庞大的用户、高并发以及海量的数据这三个方面。大型网站的形成就像…

发现了好的网站

今天在查找DNN,以及rainbow的资料时,发现了几个好的网站,并在上边注册;www.dnnskins.com, www.asp.net www.codeproject.com 通过查看,对dnn,rainbow有了新的认识转载于:https://www.cnblogs.com/mengfan/arch…

影响我的网站速度的因素

测试几个主网页总结出影响我的网页速度的几个因素: 一级因素: ①启动压缩 ②浏览器缓存 二级因素: ①提供压缩后的图片 找到原因下面就好办了,对症下药,下面将一个个解决。 解决办法: 开启压缩功能-…

别找了!这5个图片素材网站分享给你,每一个都资源满满!

职场中的工作日常就是找素材,但是需要找到合适的图片素材真的是难上加难。废话就不多说了,今天小编就给大家分享5个图片素材网站,资源真的超级丰富!有需要的小伙伴记得收藏!Pixabay链接:http://pixabay.com…

大型网站架构系列:分布式消息队列

一、消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。 目前在生产环境&#xff0…

一个母婴电子商务网站的大数据平台及机器学习实践

母婴相对一般的电子商务网站有一些特点:第一个特点是商品周期短,在母婴网站上的商品,在线的时间不会超过5-7天,第二个是用户需求的变化快,在母婴行业,可能是用户的需求变化最快的领域,比如是用户…

大型网站架构技术一览

网站系统架构层次如下图所示: 1.前端架构 前端指用户请求到达网站应用服务器之前经历的环节,通常不包含网站业务逻辑,不处理动态内容。 浏览器优化技术 并不是优化浏览器,而是通过优化响应页面,加快浏览器页面的加载…

大型网站图片服务器架构的演进

在主流的Web站点中,图片往往是不可或缺的页面元素,尤其在大型网站中,几乎都将面临“海量图片资源”的存储、访问等相关技术问题。在针对图片服务器的架构扩展中,也会历经很多曲折甚至是血泪教训(尤其是早期规划不足&am…

大型网站架构系列:分布式消息队列

以下是消息队列以下的大纲,本文主要介绍消息队列概述,消息队列应用场景和消息中间件示例(电商,日志系统)。 本次分享大纲 消息队列概述消息队列应用场景消息中间件示例JMS消息服务常用消息队列参考(推荐&…

浅谈web网站架构演变过程

前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。该系统具备的功能:用户模块:用户注册和管理商品模块:商品展示和管理交易模块:创建交易和管理 阶段一、单机构建网站 网…

大型网站系统架构分析

千万级的注册用户,千万级的帖子,nTB级的附件,还有巨大的日访问量,大型网站采用什么系统架构保证性能和稳定性? 首先讨论一下大型网站需要注意和考虑的问题。 数据库海量数据处理:负载量不大的情况下select、…

如何对一个网站进行分析

有时,我们浏览到某个网站,觉得不错,然后就决定把其中的某个功能或产品应用到自己的网站上。这样做或许有时候能够对自己的网站有帮助,但是这往往是一个草率的做法。最好经过充分的考虑和分析之后再做决定。从做事的逻辑结构来看&a…

超人气新书《SEO实战密码——60天网站流量提高20倍》火爆热销

超人气新书《SEO实战密码——60天网站流量提高20倍》火爆热销 11月底,《SEO实战密码——60天网站流量提高20倍》在全国读者的翘首企盼中正式面市,仅一周的时间,它便以令人窒息的速度在卓越网迅速脱销,当当网签名本2天之内抢售一空…

如何设计通用的网站模板

现在网络上已经到处可以看到使用模板开发出来的网站。使用模板开发网站有很多好处,最主要的就是模板与程序完全脱离,用户可以根据规定好的标签任意开发模板,导入到模板引擎里就能正常运行。所以美工人员跟程序编写人员彻底的独立了。提高了开…

大型网站技术架构(二)架构模式

2019独角兽企业重金招聘Python工程师标准>>> 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。 所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠…

网站设计常用技巧(转)

先说一下写这篇文章的目的吧,这上面的东西很多不是我写的,也不是我总结的,这点我肯定,呵呵,我希望大家也能提提你自己的建议,希望不断总结, 让更多的网站设计技巧出现在这里,方便 查…

(一)高并发redis学习笔记:小电商网站架构与高并发架构区别

主要的知识: redis集群storm集群nginxtomcatmysql 真正能支撑高并发以及高可用的复杂系统中的缓存架构有哪些东西? (1)如何让redis集群支撑几十万QPS高并发99.99%高可用TB级海量数据企业级数据备份与恢复?&#xff1…

配置ISA Server以创建站点到站点*** 连接之二(接续之一)

在本练习中,您将对两个 ISAServer 阵列进行配置以创建站点到站点 *** 连接。注意:本实验室练习使用以下计算机:Denver - Florence - Berlin - Istanbul 注意:在以下任务中,您将配置 GERMANY 阵列以使用站点到站点 *** …