day1 初识Nginx

可紊 提交于 2019-12-04 14:31:11

一. Nginx的诞生

    Nginx是一个高效的web及反向代理服务器,它的第一版发布于2012年,晚于如今占据最大市场份额的Apache。那么Nginx的诞生肩负了哪些使命呢?或者说它于Apache的差别在哪里?

    低效的Apache!Apahce诞生于上世纪90年代。那个时候硬件技术还不是很成熟,服务器大多是单核单cpu的,而且网络请求数也不是很多。和大多数那个年代诞生的组件一样,Apache的底层采用的是同步多进程的模型。如今服务器向着多核多cpu发展,处理的网络请求也动辄十万级 百万级,尤其是物联网的诞生,以亿为单位的qps也出现在大家的视野中。在这样的场景下,Apache低效的底层模型就无法应对了。一个服务器能开启的进程数是有限的,而且操作系统在多个进程之间的切换也会消耗大量的资源和时间,导致Apache无法跑满多核cpu的性能。

    高效的Nginx!Nginx的底层采用了多路复用的技术,轻松应对百万级的连接。如果说同步 多进程代表着低效,那么异步 多路复用就是高性能的代名词了。Nginx可以在一个线程中处理多个请求,避免了进程、线程间的切换,在用户态中实现并发的处理。而且Nginx几乎是由纯C语言开发的,也是其的运行效率大大提升。

    比较一下Apache和Nginx,Nginx用户如下几个优点:1. 高并发,高性能;2. 可扩展性好(拥有丰富的模块);3. 高可靠性;4. 热部署;5. BSD许可证(允许修改源码并用到商业场景)

    如此看来也就不难理解,为什么Nginx的短时间内能占据这么大的市场。虽然Apahce现在依然是市场占有率第一的web容器,但是其和Nginx的差距在逐年递减。不仅创业公司和新的项目大多采用Nginx,而且一些老项目也在慢慢的由Apache转向Nginx。

二. Nginx的主要引用场景

    Nginx主要提供了三个功能:1. 静态资源的访问;2. 反向代理 3. API服务

    Nginx允许用户直接访问服务器的静态资源,依托于Nginx强大的性能,使其访问速度远高于配置在应用服务器上的静态资源。

    应用服务一般要中和开发效率、程序的可读性、可扩展性等等因素,其响应速度一般远低于Nginx。Nginx提供了反向代理的功能,利用负载均衡、缓存的手段,允许用户通过Nginx访问服务来获取更高的体验。值得一提的是,多路复用的模型只是应对高并发的情景下比多进程、多线程模型的效率高,并不能对单个连接的处理的更快,而是能较快的处理更多的连接。

    跟上边提到的一样,应用服务一般执行的效率会比较低。Nginx还提供了另一种方式来提升用户请求数据的速度,这就是API服务。Nginx的API服务可以直接访问数据库或者缓存服务,并将拿到的数据返回给用户。

三. Nginx的版本

    ​免费版:Nginx.org、OpenResty.org

    ​商业版:Nginx.com、OpenResty.com

三. Nginx的组成

    ​1. 二进制可执行文件

    ​2. 配置文件

    ​3. 访问日志

    ​4. 错误日志

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!