1. 首先设置断点:ngx_epoll_process_events at src/event/modules/ngx_epoll_module.c:575
2. 请求http://ip
3. nginx接收的客户端的请求,进行accept事件处理,调用堆栈如下图。
4. accept处理完毕后,进行http的请求处理,如下图:
5. 上一步处理完毕后,执行到如下地方:
6. 5步骤中红色标记的函数如下:
7. 真正处理http请求的函数, 见红色标记的部分。
8. 最后,nginx遍历所有的handler,找到合适handler处理http请求,代码如下:
9. 发送http内容