1 / 14
文档名称:

Nginx工作原理和优化.docx

格式:docx   大小:96KB   页数:14页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Nginx工作原理和优化.docx

上传人:分享精品 2018/4/28 文件大小:96 KB

下载得到文件列表

Nginx工作原理和优化.docx

相关文档

文档介绍

文档介绍:目录(?)[-]
Nginx的模块与工作原理
NginxFastCGI运行原理
什么是 FastCGI
NginxFastCGI运行原理
spawn-fcgi与PHP-FPM
NginxPHP-FPM
Nginx优化
编译安装过程优化
利用TCMalloc优化Nginx的性能
Nginx内核参数优化
PHP-FPM的优化
1.  Nginx的模块与工作原理
Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是Nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。
Nginx的模块从结构上分为核心模块、基础模块和第三方模块:
核心模块:HTTP模块、EVENT模块和MAIL模块
基础模块:HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块,
第三方模块:HTTP Upstream Request Hash模块、Notice模块和HTTP Access Key模块。
用户根据自己的需要开发的模块都属于第三方模块。正是有了这么多模块的支撑,Nginx的功能才会如此强大。
Nginx的模块从功能上分为如下三类。
Handlers(处理器模块)。此类模块直接处理请求,并进行输出内容和修改headers信息等操作。Handlers处理器模块一般只能有一个。
Filters (过滤器模块)。此类模块主要对其他处理器模块输出的内容进行修改操作,最后由Nginx输出。
Proxies (代理类模块)。此类模块是Nginx的HTTP Upstream之类的模块,这些模块主要与后端一些服务比如FastCGI等进行交互,实现服务代理和负载均衡等功能。
图1-1展示了Nginx模块常规的HTTP请求和响应的过程。
                       图1-1展示了Nginx模块常规的HTTP请求和响应的过程。
Nginx本身做的工作实际很少,当它接到一个HTTP请求时,它仅仅是通过查找配置文件将此次请求映射到一个location block,而此location中所配置的各个指令则会启动不同的模块去完成工作,因此模块可以看做Nginx真正的劳动工作者。通常一个location中的指令会涉及一个handler模块和多个filter模块(当然,多个location可以复用同一个模块)。handler模块负责处理请求,完成响应内容的生成,而filter模块对响应内容进行处理。
Nginx的模块直接被编译进Nginx,因此属于静态编译方式。启动Nginx后,Nginx的模块被自动加载,不像Apache,首先将模块编译为一个so文件,然后在配置文件中指定是否进行加载。在解析配置文件时,Nginx的每个模块都有可能去处理某个请求,但是同一个处理请求只能由一个模块来完成。 
在工作方式上,Nginx分为单工作进程和多工作进程两种模式。在单工作进程模式下,除主进程外,还有一个工作进程,工作进程是单线程的;在多工作进程模式下,每个工作进程包含多个线程。Nginx默认为单工作进程模式。
2.  Nginx+FastCGI运行原理
1、什么是 FastCGI
FastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。多数流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等。同时,FastCGI也被许多脚本语言支持,其中就有PHP。
FastCGI是从CGI发展改进而来的。传统CGI接口方式的主要缺点是性能很差,因为每次HTTP服务器遇到动态程序时都需要重新启动脚本解析器来执行解析,然后将结果返回给HTTP服务器。这在处理高并发访问时几乎是不可用的。另外传统的CGI接口方式安全性也很差,现在已经很少使用了。
FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。当HTTP服务器每次遇到动态程序时,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能。
2、Nginx+FastCGI运行原理
Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用。FastCGI接口在Linux下是socket(这个soc

最近更新

国网2024年高校毕业生招聘英大泰和财产保险股.. 59页

安徽省安庆市事业单位招聘考试(职业能力倾向.. 149页

安徽省芜湖市事业单位招聘考试(职业能力倾向.. 148页

山东省威海市事业单位招聘考试(职业能力倾向.. 144页

山东省烟台市事业单位招聘考试(职业能力倾向.. 148页

广东省江门市选调生考试(行政职业能力测验).. 147页

广西防城金花茶国家级自然保护区管理处2024年.. 58页

江苏省2024年上半年省事业单位招聘人员历年高.. 61页

江苏省泰州市事业单位招聘考试(职业能力倾向.. 147页

江西省鹰潭市事业单位招聘考试(职业能力倾向.. 147页

浙江省舟山市事业单位招聘考试(职业能力倾向.. 149页

滁州市直医院2024年公开招聘高校毕业生历年高.. 59页

福建省厦门市事业单位招聘考试(职业能力倾向.. 146页

莱州市事业单位2024年招聘工作人员历年高频难.. 59页

辽宁省大连市事业单位招聘考试(职业能力倾向.. 147页

辽宁省锦州市事业单位招聘考试(职业能力倾向.. 146页

重庆市广安市选调生考试(行政职业能力测验).. 148页

2020年山东省威海市中考数学试卷含答案 29页

一种船舶液体管路系统振动频域响应预报方法 9页

小学三年级英语下册作业设计大赛陕旅版 4页

拳头业务推广方案 27页

浙江工业大学大学物理实验 填空题 14页

酒店管理专业申报材料 7页

平民窟最新规划方案 31页

老师写给学生们的毕业寄语摘录58条 9页

课外阅读4篇 11页

2024上海市事业单位考试模拟题-言语理解与表达.. 116页

2024内蒙古电力(集团)限责任公司校园招聘48.. 148页

2024山东沂水城市建设投资集团限公司招聘65人.. 147页

2024年《职业能力倾向测验》言语理解与表达考.. 118页