今天继续给大家介绍Linux运维的相关知识,本文主要内容是Nginx基本知识。
一、Nginx简介
Nginx是一个高性能的HTTP和反向代理服务器,由俄罗斯Rambler.ru站点开发,源代码以BSD许可证的形式发布。Nginx对比Apache,其显著特点是内存占用小,并发能力强。在标准服务器上,Nginx通常比Aapche所能够提供的并发量高5-10倍。
Nginx官网网址为:http://nginx.org/,网页如下所示:
Nginx的下载在官网上点击Download按钮即可,下载页面如下所示:
可以注意到,Nginx的下载页面中,有Mainline version、Stable version和Legacy versions三种版本。这三种版本分别命名为主线版本、稳定版本和历史版本。
主线版本是开发和测试版本,通常被一些大公司进行二次开发使用,一般为奇数版本。稳定版本通常是修复了一些bug之后的版本,较为稳定,为中小型公司所青睐,一般为偶数版本。历史版本则是之前的稳定版本。
在这里,我们可以下载到我们需要的Nginx版本。
二、Nginx工作原理
Nginx由内核和模块组成,与操作系统的设计类似。Nginx的内核的设计非常微小和简洁,完成的工作也仅仅是通过查找配置文件将客户端的请求映射到i个配置区域(location block),location是Nginx中的一个指令,用于匹配用户访问的URL路径,在location模块中,每个指令将会启动不同的模块去完成相应的工作。Nginx的处理流程如下:
三、Nginx高并发原因
Nginx之所以比Apache并发量高,是因为采用了epoll模型,而Apache采用了select模型。
select模型的特点是对句柄时间的处理是遍历所有句柄,因此效率比较低。
epoll模型的特点是对句柄事件的选择不是遍历的,而是事件响应的,出现句柄事件会被立即选择处理,不需要遍历整个句柄列表,因此处理效率很高。
四、Nginx进程介绍
当Nginx服务被开启后,会启动Master进程,监听80端口,同时该进程会生成很多worker进程,当Nginx处理HTTP请求时,会由一个Worker进程被选择出来,读取请求、解析请求、处理请求并生成数据返回。
五、Nginx模块介绍
在本文第二章我们讲到,Nginx是由内核和模块构成。Nginx的模块从结构上,可以分为核心模块、基础模块和第三方模块。这些模块主要包括如下部分:
1、核心模块:HTTP模块、EVENT模块和MAIL模块。
2、基础模块:HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块。
3、第三方模块:HTTP Upstream Request Hash模块、Notice模块、HTTP Access Key模块和Limit_req模块等。
如果从功能上分,Nginx的模块又可以分为以下三类:
1、处理器模块(Handlers)。 此模块直接处理请求,并进行输出内容和修改headers信息等操作,处理器模块一般只能有1个。
2、过滤器模块(Filters)。 此模块主要对其他处理器模块输出的内容进行修改操作,最后由Nginx输出。
3、代理类模块(Proxies)。 此类模块主要与一些后端服务FastCGI等进行交互,实现服务代理和负载均衡等功能。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_40228200/article/details/122723993