[置顶] 高性能网站架构之负载均衡 Nginx的简介

标签: nginx 负载均衡
4028人阅读 评论(6) 收藏 举报
分类:

什么是Nginx

         Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、新浪、网易、腾讯等。

Nginx有什么优点

     (1)更快

       这表现在两个方面:一方面,在正常情况下,单次请求会得到更快的响应;另一方面,在高峰期(如有数以万计的并发请求),Nginx可以比其他Web服务器更快地响应请求。

    (2)高扩展性

      Nginx的设计极具扩展性,它完全是由多个不同功能、不同层次、不同类型且耦合度极低的模块组成。因此,当对某一个模块修复Bug或进行升级时,可以专注于模块自身,无须在意其他。而且在HTTP模块中,还设计了HTTP过滤器模块:一个正常的HTTP模块在处理完请求后,会有一串HTTP过滤器模块对请求的结果进行再处理。这样,当我们开发一个新的HTTP模块时,不但可以使用诸如HTTP核心模块、events模块、log模块等不同层次或者不同类型的模块,还可以原封不动地复用大量已有的HTTP过滤器模块。这种低耦合度的优秀设计,造就了Nginx庞大的第三方模块,当然,公开的第三方模块也如官方发布的模块一样容易使用。

        Nginx的模块都是嵌入到二进制文件中执行的,无论官方发布的模块还是第三方模块都是如此。这使得第三方模块一样具备极其优秀的性能,充分利用Nginx的高并发特性,因此,许多高流量的网站都倾向于开发符合自己业务特性的定制模块。

      (3)高可靠性

        高可靠性是我们选择Nginx的最基本条件,因为Nginx的可靠性是大家有目共睹的,很多家高流量网站都在核心服务器上大规模使用Nginx。Nginx的高可靠性来自于其核心框架代码的优秀设计、模块设计的简单性;另外,官方提供的常用模块都非常稳定,每个worker进程相对独立,master进程在1个worker进程出错时可以快速“拉起”新的worker子进程提供服务。

      (4)低内存消耗

        一般情况下,10 000个非活跃的HTTP Keep-Alive连接在Nginx中仅消耗2.5MB的内存,这是Nginx支持高并发连接的基础。

      (5)单机支持10万以上的并发连接

        这是一个非常重要的特性!随着互联网的迅猛发展和互联网用户数量的成倍增长,各大公司、网站都需要应付海量并发请求,一个能够在峰值期顶住10万以上并发请求的Server,无疑会得到大家的青睐。理论上,Nginx支持的并发连接上限取决于内存,10万远未封顶。当然,能够及时地处理更多的并发请求,是与业务特点紧密相关的。

     (6)热部署

       master管理进程与worker工作进程的分离设计,使得Nginx能够提供热部署功能,即可以在7×24小时不间断服务的前提下,升级Nginx的可执行文件。当然,它也支持不停止服务就更新配置项、更换日志文件等功能。

       快速增长的互联网用户群以及业内所有互联网服务提供商越来越好的用户体验,都促使我们在大流量服务中用Nginx取代其他Web服务器。Nginx先天的事件驱动型设计、全异步的网络I/O处理机制、极少的进程间切换以及许多优化设计,都使得Nginx天生善于处理高并发压力下的互联网请求,同时Nginx降低了资源消耗,可以把服务器硬件资源“压榨”到极致。

Nginx的用处

          1.Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性: 在高连接并发的情况下,Nginx是Apache服务器不错的替代品:能够支持高达 50,000 个并发连接数的响应。下图表示了nginx的工作架构图。

        

        2.Nginx作为负载均衡服务器:Nginx 既可以在内部直接支持Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。  作为邮件代理服务器:Nginx同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器)。

        这篇文章对nginx 做一个简单的介绍,下一篇文章,介绍一下如何安装nginx。

查看评论

nginx架构分析

nginx(发音"engine x")是俄罗斯软件工程师Igor Sysoev开发的免费开源web服务器软件。nginx于2004年发布,聚焦于高性能,高并发和低内存消耗问题。并且具有多种web服务器...
  • Vivid_110
  • Vivid_110
  • 2016-02-13 02:37:57
  • 2739

Nginx的负载均衡 - 整体架构

Nginx版本:1.9.1 我的博客:http://blog.csdn.net/zhangskd   什么是负载均衡   我们知道单台服务器的性能是有上限的,当流量很大时,就需要使用多台服务器来共同提...
  • zhangskd
  • zhangskd
  • 2015-12-12 23:30:26
  • 16527

主题:分布式架构高可用架构_Keepalived+Nginx实现高可用Web负载均衡

一、场景需求 二、Keepalived 简要介绍 Keepalived 是一种高性能的服务器高可用或热备解决方案,Keepalived 可以用来防止服务器单点故障的发生,通过配合 Ng...
  • u013870094
  • u013870094
  • 2016-11-26 23:56:16
  • 2888

配置Nginx实现负载均衡

在关于高并发负载均衡一文中已经提到,企业在解决高并发问题时,一般有两个方向的处理策略,软件、硬件,硬件上添加负载均衡器分发大量请求,软件上可在高并发瓶颈处:数据库+web服务器两处添加解决方案,其中w...
  • Daybreak1209
  • Daybreak1209
  • 2016-06-01 10:45:57
  • 25191

Nginx的优缺点

nginx 相对 apache 的优点: 轻量级,同样起web 服务,比apache 占用更少的内存及资源抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下...
  • lyelyelye
  • lyelyelye
  • 2017-02-08 16:06:33
  • 2755

Nginx简介及使用Nginx实现负载均衡的原理【通俗易懂,言简意赅】

nginx 这个轻量级、高性能的 web server 主要可以干两件事情:   〉直接作为http server(代替apache,对PHP需要FastCGI处理器支持);   〉另外一个功能就是...
  • u014749862
  • u014749862
  • 2016-01-15 10:50:07
  • 56176

实现nginx的负载均衡

现在很多企业都采用多台服务器来共同支撑企业的网站,这样不仅可以加快企业网站的访问速度,还可以避免突发情况造成的灾难,但是会由于服务器本身原因或者某些外界因素会造成各个服务器的访问速度不一,这时候我们就...
  • andong154564667
  • andong154564667
  • 2016-08-04 18:31:06
  • 11618

Nginx负载均衡配置

原文链接:http://blog.csdn.net/xyang81/article/details/51702900Nginx安装请参考:《Nginx源码安装》      负载均衡的目的是为了解决单个...
  • xyang81
  • xyang81
  • 2016-06-18 22:58:12
  • 24880

【Nginx】实现负载均衡的几种方式

要理解负载均衡,必须先搞清楚正向代理和反向代理。正向代理与反向代理【总结】注: 正向代理,代理的是用户。 反向代理,代理的是服务器 什么是负载均衡当一台服务器的单位时间内的访问量越大时,服务器压力就越...
  • qq_28602957
  • qq_28602957
  • 2017-03-12 11:59:53
  • 14206

架构高性能网站秘笈(七)——负载均衡

什么是负载均衡?当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能。那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台服务器...
  • u010425776
  • u010425776
  • 2016-04-12 09:37:53
  • 7672
    个人资料
    等级:
    访问量: 42万+
    积分: 8880
    排名: 2706
    最新评论