
nginx
文章平均质量分 68
kgduu
这个作者很懒,什么都没留下…
展开
-
nginx的upstream模块
nginx的upstream模块原创 2023-03-26 10:57:22 · 1023 阅读 · 0 评论 -
nginx资源
nginx资源原创 2023-03-25 10:46:38 · 104 阅读 · 0 评论 -
nginx http模块
nginx http模块原创 2023-03-04 22:42:57 · 1514 阅读 · 0 评论 -
nginx事件模块
nginx事件模块原创 2023-02-28 23:20:14 · 522 阅读 · 2 评论 -
nginx中的ngx_modules
NGX_MODULES_C=$NGX_OBJS/ngx_modules.c原创 2023-02-19 18:25:35 · 812 阅读 · 0 评论 -
LC_ALL的含义
LC_ALL的含义原创 2023-02-19 18:07:34 · 1335 阅读 · 0 评论 -
nginx平滑升级
nginx平滑升级原创 2023-02-18 15:22:50 · 901 阅读 · 0 评论 -
Nginx启动流程
Nginx启动流程原创 2023-02-05 22:09:11 · 1283 阅读 · 0 评论 -
nginx中ngx_cycle_s的conf_ctx初始化
nginx中ngx_cycle_s的conf_ctx初始化原创 2023-01-14 21:07:18 · 1010 阅读 · 0 评论 -
nginx基础架构
nginx基础架构原创 2022-11-20 20:55:59 · 1531 阅读 · 0 评论 -
nginx支持的选项
nginx支持的选项原创 2022-12-31 21:47:21 · 142 阅读 · 0 评论 -
Nginx源码分析:核心模块剖析及常见问题
Nginx 在解析完请求行和请求头之后,一共定义了十一个阶段,分别介绍如下HTTP 模块工作原理HTTP 处理的十一个阶段定义typedef enum { NGX_HTTP_POST_READ_PHASE = 0, // 读取请求内容阶段 NGX_HTTP_SERVER_REWRITE_PHASE, // Se转载 2016-02-23 10:54:23 · 1219 阅读 · 0 评论 -
Nginx源码分析:3张图看懂启动及进程工作原理
图一:nginx 启动及内存申请过程分析任何程序都离不开启动和配置解析。ngx 的代码离不开 ngx_cycle_s 和 ngx_pool_s 这两个核心数据结构,所以我们在启动之前先来分析下。内存申请过程分为 3 步假如申请的内存小于当前块剩余的空间,则直接在当前块中分配。假如当前块空间不足,则调用 ngx_palloc_block转载 2016-02-23 10:51:46 · 1181 阅读 · 0 评论 -
nginx的启动初始化过程(一)
nginx的启动初始化在src/core/nginx.c的main函数中完成,也是整个nginx的入口。nginx的初始化主要围绕一个类型为ngx_cycle_t的全局变量ngx_cycle展开。main函数做的第一件事是对参数选项进行处理,如下if (ngx_get_options(argc, argv) != NGX_OK) { return 1; }原创 2015-01-13 21:00:24 · 1105 阅读 · 0 评论 -
nginx启动初始化过程(二)
前面提到nginx启动过程中,关键部分是ngx_init_cycle。ngx_init_cycle()函数究竟做了哪些工作。ngx_cycle_t结构定义在src/core/ngx_core.h文件中。ngx_timezone_update(); /* force localtime update with a new timezone */ tp = ngx_timeof原创 2015-01-15 21:40:58 · 709 阅读 · 0 评论 -
nginx进程管理之master进程
nginx分为single和 master两种进程模型。master模型为一个master模型和n个worker进程的工作方式 。本文分析nginx的 master进程做了哪些事情,它是如何管理好各个worker进程的。在main函数中完成了nginx启动初始化过程,启动初始化过程中的一个重要环节就是解析配置文件,回调各个配置指令的回调函数,因此完成了各个模块的配置相互关联。在完成初始化后,就原创 2015-01-17 20:38:39 · 4911 阅读 · 0 评论 -
nginx进程管理之worker进程
主要分析一下worker进程的情况。首先找到worker进程的入口-ngx_worker_process_cycle。这个函数不仅是worker进程的入口函数,而且是worker进程 循环工作的主要函数。首先将全局变量ngx_process设置为worker进程的标志,然后调用ngx_worker_process_init,对worker进程作初始化操作。先看看worker进程的初始化过程。原创 2015-01-21 23:36:51 · 2708 阅读 · 0 评论 -
nginx的master和worker进程间的通信
本文 主要分析master进程和worker进程之间是如何使用channel来完成通信的。这部分实现的代码主要分布在src/os/unix/ngx_channel.c文件中。master进程将数据传给worker进程,用socketpair创建的通道channel[0]将命令发送给worker进程,告诉worker进程要做什么。而worker进程不需要告诉master进程做什么,是一个单向的通道。原创 2015-01-23 00:02:22 · 3918 阅读 · 0 评论 -
nginx的list数据结构
nginx的list比较简单,主要在文件src/core/ngx_list.h和src/core/ngx_list.c两个文件中,可以说是麻雀虽小,五脏俱全。1、ngx_list的结构其定义如下:struct ngx_list_part_s { void *elts; //元素的首地址 ngx_uint_t nelts; //元素原创 2015-02-10 21:31:44 · 1207 阅读 · 0 评论 -
nginx中的event模块
event中将事件驱动模块,由于支持跨平台,抽象出了event模块。它支持的event类型有:1、AIO(异步I/O)2、/dev/poll(solaris和unix特有)3、epoll(linux特有)4、eventport(solaris 10特有)5、kqueue(BSD特有)6、poll7、rtsig(实时信号)8、selectevent模块的主要功能就原创 2015-01-05 20:35:09 · 2399 阅读 · 0 评论 -
nginx的hash表结构
前言ngx中的hash表有两种,一种是常规的hash表,另外一种是带有通配符的hash表(其中包含前缀通配符和后经通配符)。而带通配符的hash表是基于常规hash表建立的。ngx_hash_t是nginx中的hash表的实现,定义和实现位于src/core/ngx_hash.c和src/core/ngx_hash.h文件中。ngx_hash_t的实现与一般的hash表实现大同小异。对于常原创 2015-01-31 21:00:56 · 708 阅读 · 0 评论 -
nginx中的数组结构ngx_array_t
nginx中的ngx_array_t类似于c语言中的数组,其是基于内存池动态分配的。主要包含在文件src/core/ngx_array.h和/src/core/ngx_array.c两个文件中。1、ngx_array_t的数组结构typedef struct { void *elts; //数组的首地址 ngx_uint_t nelts; //数组中的原创 2015-01-25 17:06:05 · 1089 阅读 · 0 评论 -
nginx的内存池及内存管理
nginx对内存的管理是由自己实现的内存池结构ngx_pool_t来完成,本文主要讲nginx的内存管理。nginx对内存管理涉及到四个文件:src/core/ngx_palloc.h、src/core/ngx_palloc.c、src/os/unix/ngx_alloc.c、src/os/unix/ngx_alloc.hngx_alloc.h和ngx_alloc.c文件主要是对mallo原创 2015-01-24 21:37:15 · 2062 阅读 · 0 评论 -
nginx的安装
nginx依赖以下模块:1、gzip模块需要zlib库2、rewrite模块需要pcre库(正则表达式)3、ssl功能需要openssl库安装pcre1、获取pcre编译安装包,在http://www.pcre.org/上可以获得当前最新的版本2、解压缩pcre-xx.tar.gz包3、进入解压缩目录,执行./configure4、make 和make in原创 2015-01-12 19:10:54 · 622 阅读 · 0 评论