Nginx
文章平均质量分 79
陈心朔
C++后端
展开
-
Nginx学习笔记(一)
Nginx进程模型 1. 多进程模型: 进程间相互独立,无需加锁,且互不影响; 一个进程退出了不影响其他的进程运行,降低风险; 当请求到来,多个worker通过竞争accrpt_mutex而获得注册listenfd读事件,在读事件里调用accept接受连接。 2. 异步非阻塞: 处理网络事件与I/O复用相同,同时监控多个事件,当有事件就绪了就去读原创 2017-07-09 14:59:55 · 358 阅读 · 0 评论 -
Nginx学习笔记(二)
Connection: 在Nginx中,connection就是对TCP连接的封装,其中包括连接的socket,读写事件。 Nginx处理连接流程: 1. 解析配置文件,得到需要监听的端口和IP地址; 2. 在 master 中初始化监听 socket -> bind ->listen; 3. fork 多个子进程,子进程会通过竞争 accept_mutex 锁获得新连接;原创 2017-07-09 18:06:25 · 269 阅读 · 0 评论 -
Nginx学习笔记(三)
Request: Nginx 中的 ngx_http_request_t 是对一个 http 请求的封装;原创 2017-08-12 20:46:24 · 282 阅读 · 0 评论 -
Nginx学习笔记 —— 基本数据结构
Nginx的一些特点: 高性能 采用事件驱动模型,可以无阻塞的处理海量并发连接 高稳定性 内存池避免了c程序常见的资源泄漏问题 模块化架构使得各个功能模块完全解耦 one master / mutil workers 进程池设计实现了自我监控管理,保证一个worker挂掉也能快速恢复服务 低资源消耗 不使用传统的进程或线程服务器模型,没有切换成本 使用很多节约系统资源的编程技巧 高扩展性原创 2017-08-23 10:31:16 · 501 阅读 · 0 评论 -
Nginx学习笔记 —— 高级数据结构
动态数组ngx_array_t 表示一块连续的内存,其中存放着数组元素,概念上和原始数组很接近// 定义在 core/ngx_array.h typedef struct { void * elts; // 数组的内存位置,即数组首地址 ngx_uint_t nelts; // 数组当前的元素数量 size_t原创 2017-08-30 16:59:35 · 558 阅读 · 0 评论