如何解读Nginx源码?
1楼(未知网友)
个人的做法是,先看基础数据结构。然后再看基本事件驱动流程(如从接收到一个HTTP请求,再到它的处理,最后返回),最好多尝试在里面加上一些log代码,以验证自己的想法是否正确,借助于doxywizard来生成函数调用图是一个很有用且很直观的方式,可以理清自己的很多疑问,毕竟一大堆调用自己有时候看着也会糊涂。
2楼(未知网友)
可以先看看诸如:Nginx开发从入门到精通 之类的基础性、概述性的东西,对其总体架构、常用的数据结构和常用的功能函数有了了解之后,再深入其中的具体的流程、函数。边开发边学。没有想像中难。
3楼(未知网友)
贴链接不扣友善度的吧?
毕业生应该具有的基本素养
4楼(未知网友)
前提:
1、首先nginx是C语言编写的,你必须知识要有C语言的编程基础,否则很痛苦
2、了解web服务器,反向代理的基本知识,以及HTTP协议,TCP/IP协议的基本知识
如果你已经有丰富的经验,或者是大牛,那前面的前提就是废话,可以略过。
看源码准备:
1、找官网,找贡献者的博客去了解NGINX是做什么的,有什么特性,性能,功能,架构等
2、下载源代码,从分析main函数开始,大致了解启动流程,初始化以及一些程序的启动准备
3、建议找到request逻辑,分析下对请求的整个处理流程,不用很细,慢慢来,一口吃不了大胖子,有问题就先记上再说
4、根据分析request的经验,拓展分析下nginx的模块,处理链,以及封装的数据结构如ngx_str_t,ngx_event_t等数据结构
5、到网上找个例子,自己动手去写个模块,或修改某个处理逻辑,你一定会遇到问题,这时你可以通过GDB等工具进行分析和调试,这样加深了你的理解
6、动手写代码,看源码,调试,重复这个过程。
其他
多在网络上找资源和志同道和的技术爱好者或牛人,多交流沟通。
坚持一年,你会有突飞猛进的成绩。good luck