nginx 工作原理及特点
本文为博主原创,未经允许不得转载:
-
nginx 简介:是一个高性能 HTTP 和 反向代理 服务器。
-
Nginx 特点是占有内存少,并发能力强,事实上 Nginx 的并发能力确实在同类型的网页服务器中表现较好。
3. Nginx 相对于 Apache 优点如下:
-
-
-
高并发响应性能非常好,官方 Nginx 处理静态文件并发 5w/s
-
-
-
-
-
负载均衡及反向代理性能非常强;
-
-
-
-
-
系统内存和 CPU 占用率低;
-
-
-
-
-
可对后端服务进行健康检查;
-
-
-
-
-
支持 PHP cgi 方式和 FastCGI 方式;
-
-
-
-
-
可以作为缓存服务器、邮件代理服务器;
-
-
-
-
-
配置代码简洁且容易上手。
-
-
4.Nginx 工作原理
Nginx WEB 服务器最主要就是各种模块的工作,模块从结构上分为核心模块、基础模块和第三方模块,其中三类模块分别如下
-
-
-
核心模块:HTTP 模块、EVENT 模块和 MAIL 模块等;
-
-
-
-
-
基础模块:HTTP Access 模块、HTTP FastCGI 模块、HTTP Proxy 模块和 HTTP Rewrite 模块;
-
-
-
-
-
第三方模块:HTTP Upstream Request Hash 模块、Notice 模块和 HTTP Access Key模块、Limit_req 模块、Upstream check module 等
-
-
5. nginx 工作模型
Nginx的高并发得益于其采用了epoll模型,与传统的服务器程序架构不同,epoll是Linux 内核 2.6 以后才出现的,Nginx 采用 epoll 模型,异步非阻塞,
而 apache 采用的是 select 模型。
Select特点:
select 选择句柄的时候,是遍历所有句柄,也就是说句柄有事件响应时,select需要遍历所有句柄才能获取到哪些句柄有事件通知,
因此效率是非常低。
epoll 的特点:
epoll 对于句柄事件的选择不是遍历的,是事件响应的,就是句柄上事件来就马上选择出来,不需要遍历整个句柄链表,因此效率非常高
Nginx 默认以 80 端口监听在服务器上,并且启动一个 master 进程,同时有 master 进程生成多个工作进程,