Nginx 开发笔记

添加第三方模块 添加config脚本 config是一个shell脚本,里面定义编译模块时需要使用的环境变量。 假设我们需要编译一个第三方的Http模块,则需要定义如下三个环境变量: ngx_addon_name; //模块名称,例如ngx_http_test_module HTTP_MODULES; //模块编译顺序。一般是添加在核心模块之后"$HTTP_MODULES ngx_http_test_module"; NGX_ADDON_ »

Nginx 学习笔记

设定Worker数量并且与CPU进行绑定 因为Nginx是单进程处理模型,所以理论上nginx worker个数最好与CPU核数保持一致。 个数少了,则无法充分利用CPU。 但个数多了以后,又会出现CPU抢占,导致出现进程资源切换。反而降低处理效率。 在保持worker与CPU数量一致的情况下,将worker绑定到CPU固定核上面,则会在内核层面保证了并发。因此建议配置worker时使用下面的配置(假设为4核CPU). worker_ cpu_ affinity 仅对Linux生效 worker_processs 4; worker_cpu_affinity 1000 »

Nginx 源码分析 一

ngx_cycle_t 分析 struct ngx_cycle_s { void ****conf_ctx; //配置上下文数组(含所有模块) ngx_pool_t *pool; //内存池 ngx_log_t *log; //日志 ngx_log_t »

在MacOS中编译Nginx源码时遇到的问题

1.编译时遇到"ld: symbol(s) not found for architecture x86_64" 产生错误的原因是 nginx 在调用 openssl 的源码编译时, 调错了 configure 文件, 最终没能正确编译出需要的 openssl x86_64 库文件。解决方案,修改Makefile。 »