nginx初识

160 阅读3分钟

一、开源免费版的nginx、商业版的nginx、阿里巴巴Tengine、OpenResty

开源免费版的nginx:nginx.org

商业版的nginx plus:nginx.com

商业版的nginx plus是整合第三方模块、运营监控、技术支持上有很大的优势,但是它不免费。

阿里的Tengine是修改了nginx主分支上的代码,添加了很多高级特性和功能,但是它的底层的nginx代码不是最新的。(不推荐)

OpenResty是lua语言的,OpenResty积聚了高性能、开发效率提升的特点。有开源版和商业版。商业版的技术支持比开源版的好一些。

如果需要开发API服务器,或者需要开发web防火墙,可以使用OpenResty。

二、nginx适用于的场景

1、静态资源服务

 我们浏览的网页内容其他就是静态资源,前端打包之后将打包之后的代码放到服务器上,用户访问时,nginx接收到请求,获取指定文件中的对应文件并返回。

2、反向代理服务

网页请求数据时,nginx将请求转发到后端服务器上,这就是反向代理功能。由于应用服务的开发效率非常高,运行效率时很低的,并发受限,所以将很多应用服务组成集群,向用户提供高可用性,也就是说组成集群,一个请求任意一个服务器都可以处理,实现了高并发。这就需要nginx能进行反向代理,可以将请求转发给上游服务器。

很多应用构成集群,那么它就由两个需求:

  • 动态扩容
  • 容错

所以我们的nginx服务就要有负载均衡功能。

其次,nginx是在企业的内网边缘的,所以随着访问链路的增加,用户一个请求的时间就会增长,所以我们要能进行缓存,缓存不常变更的资源再nginx中,减少请求的时间。

3、API服务

数据库的业务场景比较简单,但并发性能要远高于应用服务,所以可以通过nginx直接访问数据库。

三、为什么出现nginx

由于互联网上数据量的快速增加,但操作系统和软件不支持多进程,像Apache,一个链接对应一个请求,只有当这个请求处理完之后,才会处理下一个请求,当出现高并发时,Apche没有办法开很多个进程,并且进程之间切换的代价还是很高的。

nginx可以使用单线程处理数百万、上千万的并发连接。

四、nginx的优点

nginx的主要优点有5个:

  • 高并发、高性能

高并发只需要保证每个链接占用的内存的少就能实现,32核64g内存,nginx可以轻松的达到数千万的并发连接,如果是请求静态资源,可以达到一百万的RPS(吞吐量)。

  • 可扩展性好

nginx模块化的设计使得它的生态圈非常的好,所以可扩展性好。

  • 高可靠性

nginx的高可靠性体现在能持续不间断能运行数年,而其他的web服务器运行几周或者几月就需要重新启动。

  • 热部署

可以再不停止服务的情况下升级nginx。

  • BSD许可证

nginx允许我们去修改其源代码用于商业模式下。