nginx源码学习资源

http://www.cnblogs.com/yjf512/archive/2012/06/13/2548515.html

2012-06-13 21:32 by 轩脉刃, 26499 阅读, 5 评论, 收藏编辑

nginx源码学习是一个痛苦又快乐的过程,下面列出了一些nginx的学习资源。

首先要做的当然是下载一份nginx源码,可以从nginx官方网站下载一份最新的。

看了nginx源码,发现这是一份完全没有注释,完全没有配置文档的代码。

现在你最希望要的是一份注释版的nginx源码,可以从下面的链接中下载一份:

https://github.com/jianfengye/nginx-1.0.14_comment

这份注释版源码会不断进行更新的

好了,第一个问题, nginx的main函数在哪里呢?

src/core/nginx.c

第二个问题,nginx启动的时候都做了哪些事情呢?参考下面两篇文章:

http://www.pagefault.info/?p=188

http://www.pagefault.info/?p=201&cpage=1

nginx启动的命令是nginx,重启的命令是nginx -s reload, nginx有master和worker进程,他们之间是怎么通信的呢?可以参考下面的文章:

http://simohayha.iteye.com/blog/467940

好了,是不是手痒痒了?希望对nginx进行调试?

你是Linux程序员? 使用gdb调试吧。

nginx如何调试  http://doyoueat.iteye.com/blog/1291164

gdb调试nginx:

http://www.cnblogs.com/yjf512/archive/2012/05/10/2494635.html

你是windows程序员?想使用vs调试nginx?行

这有个可调试工程:

http://liyongping.sinaapp.com/?p=116

如何编写nginx的第三方模块?miller的文章很好,codinglabs的文章也不错,推荐

http://www.codinglabs.org/html/intro-of-nginx-module-development.html

http://www.evanmiller.org/nginx-modules-guide.html

nginx的基本类型有非常多,那些类型各个类型是那些意思

这类的文章有很多很多,google一下能找出很多

推荐几个人的博客:

http://blog.csdn.net/livelylittlefish/article/details/7262750

http://blog.csdn.net/dingyujie/article/details/7162919

nginx开发从入门到精通  http://tengine.taobao.org/book/

注:淘宝一批大牛做的,很多东西讲的非常详细。也很系统,强烈推荐

nginx模块开发入门  http://www.162cm.com/p/ngx_ext.html

注:入门教程

教程书:

《深入理解Nginx -- 模块开发与架构解析》 陶辉

注:非常系统的讲了nginx的模块开发与架构

《深入剖析Nginx》 高群凯

时间: 2024-10-20 14:44:33

nginx源码学习资源的相关文章

nginx源码学习资源(不断更新)

nginx源码学习是一个痛苦又快乐的过程,下面列出了一些nginx的学习资源. 首先要做的当然是下载一份nginx源码,可以从nginx官方网站下载一份最新的. 看了nginx源码,发现这是一份完全没有注释,完全没有配置文档的代码. 现在你最希望要的是一份注释版的nginx源码,可以从下面的链接中下载一份: https://github.com/jianfengye/nginx-1.0.14_comment 这份注释版源码会不断进行更新的 好了,第一个问题, nginx的main函数在哪里呢?

nginx源码学习资源(不断更新)转

原文地址:http://www.cnblogs.com/yjf512/archive/2012/06/13/2548515.html nginx源码学习是一个痛苦又快乐的过程,下面列出了一些nginx的学习资源. 首先要做的当然是下载一份nginx源码,可以从nginx官方网站下载一份最新的. 看了nginx源码,发现这是一份完全没有注释,完全没有配置文档的代码. 现在你最希望要的是一份注释版的nginx源码,可以从下面的链接中下载一份: https://github.com/jianfengy

nginx源码学习(二)

上一篇文章主要介绍了nginx在win和Linux平台上的安装.本章节主要介绍nginx源码学习方法和源码结构,以及nginx启动时main方法的位置,参数信息.后面的章节主要是linux平台,你要问为何是linux,而不是win.我只能说nginx是基于linux平台开发出来的,我也习惯了linux平台开发.   上一篇文章我讲了安装,现在打开MobaXterm,连接上nginx服务器.输入whereis nginx命令查看安装目录:   是的我的安装目录在  /usr/local/nginx

nginx源码学习 资料

首先要做的当然是下载一份nginx源码,可以从nginx官方网站下载一份最新的. 看了nginx源码,发现这是一份完全没有注释,完全没有配置文档的代码. 现在你最希望要的是一份注释版的nginx源码,可以从下面的链接中下载一份: https://github.com/jianfengye/nginx-1.0.14_comment 这份注释版源码会不断进行更新的 好了,第一个问题, nginx的main函数在哪里呢? src/core/nginx.c 第二个问题,nginx启动的时候都做了哪些事情

nginx源码学习(四)

这篇文章我们继续学习main方法,我们先来看看 ngx_debug_init() 这个方法.从方法名我们也知道,debug初始化.我们先看看方法位置在哪.我们来断点在这个方法上面. Function "ngx_debug_init" not defined. 我们去源码里面查找,grep "ngx_debug_init" -r *. 通过搜索结果大家应该知道,这个函数主要用于跨操作系统的东西.在Linux系统中应该是src/os/unix/ngx_linux_con

nginx源码学习(三)

接着上一篇,我们学习nginx的main方法. 用gdb工具调试nginx,首先gdb nginx.如下: gdb调试工具有很多的命令,上一篇为了找main方法用了 b 命令,也就是breakpoint的意思.输入b main. 要调试必须得先启动nginx,输入 r 命令,也就是run的意思. ok,到这里我们就启动了nginx.到win系统下我们拷贝的源代码中,我们来看看main方法中到底有什么.每个部分又有什么作用. 这里是一部分main方法,也就是今天要讲的内容. 首先,我们看看,mai

nginx源码学习----内存池

最近在进行监控平台的设计,之前一直觉得C/C++中最棘手的部分是内存的管理上,远不止new/delete.malloc/free这么简单.随着代码量的递增,程序结构复杂度的提高.各种内存方面的问题悄然滋生.而且作为平台,后期的插件扩展在所难免.长时间运行的采集平台的特性更是提出了对稳定性的高要求.不是c#.java,没有虚拟机为你管理内存,一切都要靠自己.于是想看看nginx.python.lua这些C的经典之作在内存管理这块“要地”又是如何处理的. 先来看看nginx吧,因为网上都说nginx

nginx源码学习(五)

我们接着上篇文章来讲讲ngx_get_options函数. 这个函数就在nginx.c文件中,我们来看看. 参数argc,argv我们在前面的文章中都已经提到了,在这里我们看ngx_get_options里面的for循环.它的作用就是把所有的运行时参数循环一遍,判断是不是合法.例如 nginx -s stop,nginx -s reload等,如果你只输入nginx 或者 nginx -s,则会报错.如果是nginx -h或者-?则是请求帮助信息.nginx -v则是输出版本信息. 好的,我们看

nginx源码学习(六)

我们接着上一篇文章继续来看看ngx_regex_init()函数.搜索ngx_regex_init得到位置为src/core/ngx_regex.c:ngx_regex_init(void). 进入ngx_regex.c文档 如果你的nginx有添加NGX_PCRE模块,那么这个函数则会执行.什么是pcre呢?PCRE(Perl Compatible Regular Expressions)是一个Perl库,用pcre来解决C语言中使用正则表达式的问题.像nginx重写功能就需要有pcre库支持