E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Nginx源码分析
nginx源码分析
(13)-运维与配置(1)
nginx现在已经支持很多功能,系统内已经实现的模块多达72个,这些模块提供了若干配置指令来设置和控制nginx的相关处理过程。 为了能够更深入的进行接下来的源码分析,利用一些篇幅讨论一下nginx的运维和配置相关的内容,主要参考了nginx的英文wiki资料,按照自己的思路整理成nginx的操作和配置指南,可以作为使用nginx的一个起点。 首先简单介绍一下nginx的编译、启动和控制。 1、编
kenbinzhang
·
2009-10-24 11:00
nginx
timer
server
Module
user
File
nginx源码分析
(12)-进程启动分析(2)
紧接上回。第四个剖析的是worker子进程的执行函数ngx_worker_process_cycle(src/os/unix/ngx_process_cycle.c)。staticvoidngx_worker_process_cycle(ngx_cycle_t*cycle,void*data){ ngx_uint_t i; ngx_connection_t *c; //初
kenbinzhang
·
2009-10-19 09:00
nginx
timer
socket
cmd
command
Sockets
nginx源码分析
(11)-进程启动分析(1)
nginx的进程启动过程是在ngx_master_process_cycle(src/os/unix/ngx_process_cycle.c)中完成的(单进程是通过ngx_single_process_cycle完成,这里只分析多进程的情况),在ngx_master_process_cycle中,会根据配置文件的worker_processes值创建多个子进程,即一个master进程和多个work
kenbinzhang
·
2009-10-19 09:00
nginx
socket
cache
cmd
Signal
delay
nginx源码分析
(10)-启动过程分析
nginx有两个重要头文件:ngx_config.h和ngx_core.h。src/core/ngx_config.h文件中包含的是和操作系统相关的宏定义和头文件,其中又会包含objs/ngx_auto_headers.h和src/os/unix/ngx__config.h,前面提到过,这个头文件是自动脚本检验操作系统后生成的,这个头文件中包含了一些宏定义,这些宏定义说明了存在哪些与特定操作系统有
kenbinzhang
·
2009-10-16 16:00
数据结构
nginx
socket
Module
Sockets
操作系统相关
nginx源码分析
(9)-模块化(4)
模块的上下文是四个结构体定义的:ngx_core_module_t、ngx_event_module_t、ngx_http_module_t、ngx_mail_module_t,分别对应于四类模块。typedefstruct{ ngx_str_t name; void *(*create_conf)(ngx_cycle_t*cycle);
kenbinzhang
·
2009-10-13 12:00
nginx
struct
Module
null
FreeBSD
merge
nginx源码分析
(8)-模块化(3)
接下来剖析模块的指令。模块的指令在源码中是ngx_command_t结构的变量,ngx_command_t的声明在src/core/ngx_conf_file.h中:structngx_command_s{ ngx_str_t name; ngx_uint_t type; char *(*set)(ngx_conf_t
kenbinzhang
·
2009-10-12 13:00
nginx
struct
Module
command
hook
events
nginx源码分析
(7)-模块化(2)
分析nginx的模块化架构的实现方式,就要从ngx_module_t结构体入手。ngx_module_t的声明在src/core/ngx_conf_file.h中:#defineNGX_MODULE_V1 0,0,0,0,0,0,1#defineNGX_MODULE_V1_PADDING 0,0,0,0,0,0,0,0structngx_module_s{ ngx_uint_t
kenbinzhang
·
2009-10-12 09:00
thread
nginx
Module
command
null
hook
nginx源码分析
(6)-模块化(1)
源码的src/core目录下实现了不少精巧的数据结构,最重要的有:内存池ngx_pool_t、缓冲区ngx_buf_t、缓冲区链ngx_chain_t、字符串ngx_str_t、数组ngx_array_t、链表ngx_list_t、队列ngx_queue_t、基于hash的关联数组ngx_hash_t、红黑树ngx_rbtree_t、radix树ngx_radix_tree_t等,这些数据结构频繁
kenbinzhang
·
2009-10-12 09:00
数据结构
nginx
Module
filter
header
null
nginx源码分析
(5)-方法(2)
利用nginxwiki和互联网收集了不少nginx相关的文档资料,但是仔细阅读之后发觉对理解nginx架构有直接帮助的资料不多,一些有帮助的资料也要结合阅读部分源码细节才能搞清楚所述其是,可能nginx在非俄国之外的环境下流行不久,应用还很简单,相关的英文和中文文档也就不够丰富的原因吧。不过还是有一些金子的。如果要了解nginx的概况和使用方法,wiki足以满足需要,wiki上有各个模块的概要和详
kenbinzhang
·
2009-10-11 11:00
apache
nginx
互联网
文档
语言
Go
nginx源码分析
(4)-方法(1)
看了几天的源码,进度很慢,过于关注代码实现的细节了,反而很难看清整体结构。于是问诸google寻找方法。大体上分析源代码都要经历三遍过程,第一遍是浏览,通过阅读源码的文档和注释,阅读接口,先弄清楚每个模块是干什么的而不关心它是怎么做的,画出架构草图;第二遍是精读,根据架构草图把系统分为小部分,每个部分从源码实现自底向上的阅读,更深入细致的理解每个模块的实现方式以及与模块外部的接口方式等,弄明白模块
kenbinzhang
·
2009-10-11 11:00
编程
nginx
文档
工具
图形
Graphviz
nginx源码分析
(3)- 自动脚本
nginx的自动脚本指的是configure脚本程序和auto子目录下面的脚本程序。自动脚本完成两件事情,其一是检查环境,其二是生成文件。生成的文件有两类,一类是编译代码需要的Makefile文件,一类是根据环境检查结果生成的c代码。生成的Makefile很干净,也很容易阅读。生成的c代码有三个文件,ngx_auto_config.h是根据环境检查的结果声明的一些宏定义,这个头文件被include
kenbinzhang
·
2009-10-11 11:00
nginx
脚本
include
makefile
编译器
Graphviz
nginx源码分析
(2)- 概览
源码分析是一个逐步取精的过程,最开始是一个大概了解的过程,各种认识不会太深刻,但是把这些真实的感受也记录下来,觉得挺有意思的,可能有些认识是片面或者是不正确的,但可以通过后面更深入细致的分析过程,不断的纠正错误和深化理解。源码分析是一个过程,经验是逐步累积起来的,希望文字可以把这种累积的感觉也准确记录下来。现在就看看对nginx源码的第一印象吧。源码包解压之后,根目录下有几个子目录和几个文件,最重
kenbinzhang
·
2009-10-11 10:00
数据结构
nginx
脚本
FreeBSD
makefile
events
nginx源码分析
(1)- 缘起
nginx是一个开源的高性能web服务器系统,事件驱动的请求处理方式和极其苛刻的资源使用方式,使得nginx成为名副其实的高性能服务器。nginx的源码质量也相当高,作者“家酿”了许多代码,自造了不少轮子,诸如内存池、缓冲区、字符串、链表、红黑树等经典数据结构,事件驱动模型,http解析,各种子处理模块,甚至是自动编译脚本都是作者根据自己的理解写出来的,也正因为这样,才使得nginx比其他的web
kenbinzhang
·
2009-10-11 10:00
apache
数据结构
nginx
服务器
regex
web服务
[广告] nginx源代码分析讲座
nginx源码分析
讲座。9月19号。地点广州。 免费。
joshzhu
·
2009-09-11 17:00
nginx
Blog
Google
上一页
1
2
3
4
5
6
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他