来源:rrd.me/ggFBd
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。本文从底层原理分析 Nginx 为什么这么快!
Nginx 的进程模型
Nginx 服务器,正常运行过程中:
思考:
HTTP 连接建立和请求处理过程
HTTP 连接建立和请求处理过程如下:
Nginx 高性能、高并发
Nginx 为什么拥有高性能并且能够支撑高并发?
Nginx 的事件处理模型
Request:Nginx 中 HTTP 请求。
基本的 HTTP Web Server 工作模式:
Nginx 也是这个套路,整体流程一致:
模块化体系结构
Nginx 的模块根据其功能基本上可以分为以下几种类型:
①event module:搭建了独立于操作系统的事件处理机制的框架,及提供了各具体事件的处理。包括 ngx_events_module,ngx_event_core_module 和 ngx_epoll_module 等。
Nginx 具体使用何种事件处理模块,这依赖于具体的操作系统和编译选项。
②phase handler:此类型的模块也被直接称为 handler 模块。主要负责处理客户端请求并产生待响应内容,比如 ngx_http_static_module 模块,负责客户端的静态页面请求处理并将对应的磁盘文件准备为响应内容输出。
③output filter:也称为 filter 模块,主要是负责对输出的内容进行处理,可以对输出进行修改。
例如,可以实现对输出的所有 html 页面增加预定义的 footbar 一类的工作,或者对输出的图片的 URL 进行替换之类的工作。
④upstream:upstream 模块实现反向代理的功能,将真正的请求转发到后端服务器上,并从后端服务器上读取响应,发回客户端。
upstream 模块是一种特殊的 handler,只不过响应内容不是真正由自己产生的,而是从后端服务器上读取的。
⑤load-balancer:负载均衡模块,实现特定的算法,在众多的后端服务器中,选择一个服务器出来作为某个请求的转发服务器。
常见问题剖析
Nginx vs Apache
Nginx:
Apache:
参考文章:
http://www.oschina.net/translate/nginx-vs-apache
https://www.zhihu.com/question/19571087
Nginx 最大连接数
基础背景:
因此,Nginx 的最大连接数:
思考:
HTTP 请求和响应
HTTP 请求:
HTTP 响应:
IO 模型
处理多个请求时,可以采用:IO 多路复用或者阻塞 IO+多线程:
IO 多路复用和多线程的适用场景?
select/poll 和 epoll 比较如下:
详细内容,参考:
https://www.cnblogs.com/wiessharling/p/4106295.html
select/poll 系统调用:
- // select 系统调用
- int select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval *timeout);
- // poll 系统调用
- int poll(struct pollfd fds[], nfds_t nfds, int timeout);
select:
poll:
epoll,event 事件驱动:
select,poll,epoll:
Nginx 的并发处理能力
关于 Nginx 的并发处理能力:并发连接数,一般优化后,峰值能保持在 1~3w 左右。(内存和 CPU 核心数不同,会有进一步优化空间)。
娓娓道来的一篇好文章,贴合实际的运用场景,关于死信和延时队列的分析,我觉得...
购买海外云服务器要注意什么 ?小编近期发现很多用户都在对海外云服务器感兴趣,...
一 引用基本概念 如下面,定义两个变量num,str,存储模型大致如下图: int num=...
两年前,美国专利商标局的一个数据库损坏,使其电子归档系统的某些部分瘫痪了好...
随着互联网行业的发展,越来越多的人进入互联网行业,一些性能较差的国内云服务...
1.若别离,为何相逢?匆匆而过,不留痕迹,只留回忆。 2.真是不好意思,或许我...
众所周知,零售业一直在忍受着持续不断的颠覆,而且这种颠覆还在不断的加速。从...
决策支持系统是商业智能的一个子集,旨在帮助组织机构基于大量的数据分析来制定...
本文转载自微信公众号「Java极客技术」,作者鸭血粉丝。转载本文请联系Java极客...
随着5G、云计算、人工智能、物联网、大数据等信息技术快速发展,近年来对大数据...