
网络编程系列 -- Nginx
文章平均质量分 74
网络编程系列 -- Nginx
奋斗企鹅CopperSun
这个作者很懒,什么都没留下…
展开
-
【Linux网络编程】Nginx -- 配置项总结
【Linux网络编程】Nginx -- 基本配置实例【1】基于 Nginx 配置静态 Web 服务器【2】基于 Nginx 配置负载均衡服务器【3】基于 Nginx 配置反向代理服务器参考本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。【1】深入理解 Nginx 模块开发与架构解析...原创 2021-03-03 10:34:49 · 587 阅读 · 1 评论 -
【Linux网络编程】Nginx -- 配置案例总结
【Linux网络编程】Nginx -- 配置案例总结【1】Nginx 配置静态内容服务器【2】Nginx 配置反向代理【4】Nginx 配置日志参考致谢本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。【1】深入理解 Nginx 模块开发与架构解析【2】nginx利用proxy_cache来缓存文件...原创 2021-06-25 09:05:21 · 182 阅读 · 0 评论 -
【Linux网络编程】Nginx -- 配置文件解析
【Linux网络编程】Nginx -- 配置文件解析【1】配置解析起始调用参考致谢本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。【1】深入理解 Nginx 模块开发与架构解析【2】理解 Nginx 源码...原创 2021-04-27 13:27:51 · 296 阅读 · 0 评论 -
【Linux网络编程】Nginx -- 模块开发(基本模块解析)
【Linux网络编程】Nginx 模块开发 -- 基本模块解析参考本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。【1】深入理解 Nginx 模块开发与架构解析...原创 2021-03-03 16:24:37 · 578 阅读 · 0 评论 -
【Linux网络编程】Nginx -- 模块开发(upstream / subrequest)
【Linux网络编程】Nginx 模块开发 -- upstream / subrequest参考本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。【1】深入理解 Nginx 模块开发与架构解析...原创 2021-03-04 10:41:58 · 818 阅读 · 0 评论 -
【Linux网络编程】Nginx -- 模块开发(HTTP 过滤模块)
【Linux网络编程】Nginx 模块开发 -- HTTP 过滤模块参考本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。【1】深入理解 Nginx 模块开发与架构解析...原创 2021-03-04 11:27:37 · 422 阅读 · 1 评论 -
【Linux网络编程】Nginx -- Nginx 数据结构
【Linux网络编程】Nginx -- 源码分析(Nginx 数据结构)【1】基本数据结构【1.1】整型文件路径,src/core/ngx_config.htypedef intptr_t ngx_int_t; // 有符号整数typedef uintptr_t ngx_uint_t; // 无符号整数typedef intptr_t ngx_flag_t; // 相当于bool,标志量用说明// /* Types原创 2021-03-09 14:44:48 · 333 阅读 · 2 评论 -
【Linux网络编程】Nginx -- Nginx 架构基础知识点总结
【Linux网络编程】Nginx -- Nginx 架构基础知识点总结【1】Nginx 模块化简介Nginx 模块化特点模块化设计 高度抽象的模块接口 模块接口简单,具有很高的灵活性 配置模块的设计 核心模块接口的简单化 多层次、多类别的模块设计Nginx 模块的构成核心模块 : 为其他模块提供基本功能,如字符串处理、时间管理、文件读写等功能; 配置解析模块 : 主要包括文件语法检查、配置参数解析、参数初始化等功能; 内存管理模块 :...原创 2021-04-26 20:45:19 · 251 阅读 · 0 评论 -
【Linux网络编程】Nginx -- 核心数据结构体与处理流程(一)
【Linux网络编程】Nginx -- 核心数据结构体与处理流程(一)Nginx 核心数据结构【1】Nginx 模块相关数据结构ngx_module_t 结构体typedef struct ngx_module_s ngx_module_t;// 重新定义了填充宏,加入了签名字符串// 早期(1.9.11之前)的定义是// #define NGX_MODULE_V1 0, 0, 0, 0, 0, 0, 1// 注意前两个字段改成了unset(-原创 2021-04-26 20:45:52 · 254 阅读 · 0 评论 -
【Linux网络编程】Nginx -- 核心数据结构体与处理流程(二)
【Linux网络编程】Nginx -- 核心数据结构体与处理流程(二)【1】Nginx 框架启动流程分析【1.1】Nginx 框架启动 ——一般过程1) 因为 Nginx 是以配置文件作为核心提供服务的,所以最主要的就是确定配置文件 nginx.conf 的路径,此处会预先创建一个临时的 ngx_cycle_t 类型变量,用它的成员存储配置文件路径(实际上还会使用这个临时 ngx_cycle_t 结构体的其他成员,如 log 成员会指向屏幕输出日志),最后调用 ngx_process_op.原创 2021-04-26 20:46:17 · 331 阅读 · 0 评论 -
【Linux网络编程】Nginx -- 核心数据结构体与处理流程(三)
【Linux网络编程】Nginx -- 核心数据结构体与处理流程(三)【1】模块结构体相关【1.1】模块数组【1.1.1】模块数组 -- 包含模块的生成在 nginx\objs\ngx_modules.c 文件中生成了 Nginx 包含的所有模块的全局变量,并将 Nginx 中所有模块组织成了模块数组 *ngx_modules[],对应的模块名称保存在 *ngx_module_names[] 数组中;【1.1.2】模块数组 -- 序号与模块名称初始化文件路径 : src\core\原创 2021-04-27 11:58:10 · 197 阅读 · 0 评论 -
【Linux网络编程】Nginx -- 事件模块(一)
【Linux网络编程】Nginx -- 事件模块(一)参考致谢本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。【1】深入理解 Nginx 模块开发与架构解析【2】理解 Nginx 源码...原创 2021-05-05 20:32:28 · 438 阅读 · 0 评论 -
【Linux网络编程】Nginx -- 事件模块(二)
【Linux网络编程】Nginx -- 事件模块(二)【1】ngx_events_module 核心模块【1.1】ngx_events_module 核心模块 -- 相关接口定义ngx_events_module 模块是事件的核心模块,该模块的功能是定义新的事件类型,并为每个事件模块定义通用接口 ngx_event_module_t 结构体,管理事件模块生成的配置项结构体,并解析事件类配置项;ngx_events_module 的定义// src\event\ngx_event.c//原创 2021-05-05 20:33:37 · 311 阅读 · 1 评论 -
【Linux网络编程】Nginx -- 事件模块(三)
【Linux网络编程】Nginx -- 事件模块(三)【1】epoll 的原理简介详见【Linux网络编程】Epoll 的实现原理分析【2】ngx_epoll_module epoll 驱动模块【2.1】ngx_epoll_module epoll驱动模块 -- 相关接口定义ngx_epoll_conf_t 结构体// epoll 模块的配置结构体typedef struct { // epoll 系统调用,获取事件的数组大小 // 对应指令 epoll_ev..原创 2021-05-05 20:37:59 · 497 阅读 · 0 评论 -
【Linux网络编程】Nginx -- 事件模块(四)
【Linux网络编程】Nginx -- 事件模块(四)【1】"惊群","负载均衡","延迟队列"概述"惊群" : Nginx 使用了多个 worker 子进程监听相同端口的设计,这样多个子进程在 accept 建立新连接时会有争抢,且子进程数量越多问题越明显,从而造成系统性能下降的现象; "负载均衡" : 若每次出现的新连接事件都被同一个 worker 进程获得锁的权利并处理该连接事件,这样会导致进程之间不均衡的状态,即在所有 worker 进程中,某些进程处理的连接事件数量很庞大,而某些进程基.原创 2021-05-05 20:38:25 · 430 阅读 · 0 评论 -
【Linux网络编程】Nginx -- 进程间的通信与同步机制
【Linux网络编程】Nginx -- 进程间的通信与同步机制参考致谢本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。【1】深入理解 Nginx 模块开发与架构解析【2】理解 Nginx 源码...原创 2021-05-05 20:44:51 · 421 阅读 · 0 评论 -
【Linux网络编程】Nginx -- slab 共享内存
【Linux网络编程】Nginx -- slab 共享内存【1】Nginx -- slab 相关数据结构与方法【1.1】slab -- 相关方法函数ngx_slab_max_size 是页面大小的一半,slab 可分配的最大大小ngx_slab_exact_size 是 1 个指针大小的位图能够管理的大小ngx_slab_exact_shift 是 ngx_slab_exact_size 的位移// 初始化 ngx_slab_max_size、ngx_slab_exact_size、n原创 2021-05-05 20:41:55 · 636 阅读 · 2 评论 -
【Linux网络编程】Nginx -- 定时器
【Linux网络编程】Nginx -- 定时器参考致谢本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。【1】深入理解 Nginx 模块开发与架构解析【2】理解 Nginx 源码...原创 2021-05-31 17:17:31 · 448 阅读 · 0 评论 -
【Linux网络编程】Nginx -- 内存池
【Linux网络编程】Nginx -- 内存池参考致谢本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。【1】深入理解 Nginx 模块开发与架构解析【2】理解 Nginx 源码...转载 2021-05-31 17:22:43 · 180 阅读 · 0 评论 -
【Linux网络编程】Nginx -- 线程池
【Linux网络编程】Nginx -- 线程池参考致谢本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。【1】深入理解 Nginx 模块开发与架构解析【2】理解 Nginx 源码【3】NGINX引入线程池 性能提升9倍...原创 2021-05-31 17:18:40 · 736 阅读 · 0 评论 -
【Linux网络编程】Nginx -- 基于 VSCode 调试 Nginx 的 Master 和 Worker 进程
【Linux网络编程】Nginx -- 基于 VSCode 调试 Nginx 的 Master 和 Worker 进程【1】Nginx 编译并配置调试选项编译./configure --prefix=/home/shallysun/code_dev/SourceCode/nginx_1_19/nginx/bin --with-http_ssl_module --with-cc-opt='-g -o0'sudo make CFLAGS="-g -oO"sudo make install修原创 2021-03-03 10:39:40 · 973 阅读 · 1 评论