Nginx(一):Nginx初识

产生背景

  • 互联网的数据量快速增加html

    • 互联网的快速普及
    • 全球化
    • 物联网
  • 摩尔定律性能提高nginx

    • 摩尔定律的失效:以前服务跑在1G赫兹,当一年半之后,更新到2G赫兹的CPU时能够预测到性能有两倍的性能提高。可是到了本世纪处,摩尔定律在单颗cpu的频率上已经失效了,cpu开始向着多核方向发展。 这个时候,服务是跑在8核CPU上时,一年半之后,换到了16核CPU,服务的性能一般是不会有成倍的提高的。那么这些性能到底是损耗在哪里呢?主要是操做系统和大量的软件没有作好服务于多核架构的准备。
  • 低效的Apacheweb

    • 一个进程只能服务于一个连接Apache的架构模型一个进程同一时间只会处理一个连接一个请求,处理完之后才会处理下一个请求。这有什么潜台词呢?它实际上在使用操做系统的进程间切换的特性,由于操做系统微观上只有有限的CPU,可是操做系统被设计为同时服务数百甚至上千的进程,而Apache一个进程只能服务于一个连接,这样的模式会致使当Apache须要面对几十万、几百万连接的时候,它没有办法去开几十万、几百万的进程;而进程间切换的代价成本又过高了,当并发的链接数越多,这种无谓的进程间切换引起的性能消耗也就越大,而Nginx是专门为了这样的应用场景而生的。Nginx能够处理数百万甚至上千万的并发连接。
       

Nginx是什么?

  • 轻量级、占有内存少、并发能力强缓存

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

    • 做为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发链接,体现更高的效率,这点使 Nginx 尤为受到虚拟主机提供商的欢迎。可以支持高达 50,000 个并发链接数的响应,感谢 Nginx 为咱们选择了 epoll and kqueue 做为开发模型.
    • 做为负载均衡服务器:Nginx 既能够在内部直接支持 Rails 和 PHP,也能够支持做为 HTTP代理服务器 对外进行服务。Nginx 用 C 编写, 不管是系统资源开销仍是 CPU 使用效率都比 Perlbal 要好的多。
    • 做为邮件代理服务器: Nginx 同时也是一个很是优秀的邮件代理服务器(最先开发这个产品的目的之一也是做为邮件代理服务器),Last.fm 描述了成功而且美妙的使用经验。

Nginx 安装很是的简单,配置文件 很是简洁(还可以支持perl语法),Bugs很是少的服务器: Nginx 启动特别容易,而且几乎能够作到7*24不间断运行,即便运行数个月也不须要从新启动。你还可以在 不间断服务的状况下进行软件版本的升级。服务器

Nginx通常用户七层负载均衡,其吞吐量有必定的限制。为了提升总体的吞吐量,会在DNS和Nginx之间引入LVS(软件负载均衡器)、F5(硬负载均衡器) 能够作四层负载均衡,首先DNS解析到LVS(F5),让后LVS(F5)转发给Nginx,在有Nginx转发给真实的服务器架构

Nginx的优势?

  • 高并发、高性能并发

    • 只要咱们对每一个连接使用的内存足够少就能实现高并发;既要达到高并发又要达到高性能,每每须要很好的设计。
    • 好比如今的主流云服务器,nginx 在32核64G的配置中能够轻松达到数千万的并发连接;若是是处理简单的静态资源请求,nginx 能够达到100w 的 rps 。
  • 可扩展性好负载均衡

    • 可扩展性主要体如今模块化设计;模块化设计很是稳定,使得 Nginx 的生态圈、第三方模块很是丰富。甚至于有 Tengine、OpenResty 这样的第三方插件在他的基础之上又生成了新的生态圈。丰富的生态圈和第三方模块为 Nginx 的丰富功能提供了保证。
  • 高可靠性模块化

    • 高可靠性指的是 Nginx 能够服务器上持续不间断的运行数年,而不少web服务器每每运行几周or几个月,就须要进行一次重启。对于 Nginx 这样一个高并发、高性能的反向代理服务器而言,每每运行在企业内网的边缘节点上,这个时候若是咱们企业想提供4个九、5个九、甚至更高的高可用性时,对于 Nginx 持续运行可以宕机的时间一年可能只能以秒来计,因此在这样一个角色中,Nginx 的高可靠性给咱们提供了很是好的保证。
  • 热部署

    • 热部署是指在不中止服务的状况下升级Nginx。这个功能对于 Nginx 来讲很是重要,由于在服务器上跑了数百万的并发连接,若是是普通的服务器,咱们只能 kill 掉进程再重启的方式进行升级操做。可是对于 Nginx 而言,由于直接 kill 掉 nginx 进程会给全部的已经创建连接的客户端一个很很差的体验。
  • BSD许可证
    • BSD许可证是指 Nginx 不仅是开源的、免费的,并且咱们能够在有定制需求的场景下,去修改 Nginx 的源码,再运行在咱们的商业场景下且属于合法的。

Nginx应用场景

  • http服务器
    • Nginx是一个http服务能够独立提供http服务。能够作网页静态服务器。
  • 反向代理、负载均衡、缓存
    • 当网站的访问量达到必定程度后,单台服务器不能知足用户的请求时,须要用多台服务器集群可使用nginx作反向代理。而且多台服务器能够平均分担负载,不会应为某台服务器负载高宕机而某台服务器闲置的状况。
  • 配置安全管理
    • 好比可使用Nginx搭建API接口网关,对每一个接口服务进行拦截。
  • API服务
    • OpenResty

 

学习文档:点击进入

相关文章
相关标签/搜索