Skip to content
/ nginx Public
forked from nginx/nginx

文档基于Nginx官方Git的release1.9.10(2015-12-09)版本 中文注释。

Notifications You must be signed in to change notification settings

wlmwang/nginx

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#导读

文档基于Nginx官方Git的release1.9.9(2015-12-09)版本描述。

分析此版本静态代码和在环境为gcc 4.1.2,64位Linux2.6.18(Red Hat)下不带任何参数configure生成的动态代码(objs目录)。

#预备知识 c语言标准语法:出现频率比较高的,typedef、extern、static、volatile、void*等。

Linux环境编程:函数调用、系统调用(普通调用、慢调用)、exec(nginx热代码替换,二进制升级)、字节对齐、pagesize页对齐、 多进程(深刻理解)、守护进程(通用作法;与进程作业命令nohup区别)、进程间通信IPC(信号量、unix本地域、共享内存、文件映射)、多线程、锁、普通I/O、标准I/O、文件描述符(最好知道系统经典实现)、异步调用、非阻塞I/O、I/O多路复用(重点关注epoll)、Socket相关调用、worker进程惊群及如何防止、原子操作、内存屏障,信号机制(安全信号)、定时器、argv与environ内存布局(最好知道进程经典内存布局)等。

gcc编译:auto、makefile等。

数据结构:内存池、连接池、文件池、链表、队列、红黑树等。

#目录结构

nginx/
		auto/			#自动化脚本
		conf/			#配置模板
		contrib/
		docs/
		misc/
		objs/			#环境相关,由auto生成
		src/			#源代码
			core/		#核心,入口
			event/	#事件相关	epoll、select
			http/		#http相关
			mail/		#mail相关
			misc/		#杂项
			mysql/	#mysql相关
			os/
				unix/		#unix系统相关接口
				win32/	#windows系统相关接口
			stream/		#流相关

About

文档基于Nginx官方Git的release1.9.10(2015-12-09)版本 中文注释。

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 97.3%
  • Makefile 0.9%
  • Vim Script 0.8%
  • XS 0.5%
  • Objective-C 0.2%
  • Perl 0.1%
  • Other 0.2%