nginx编译和调试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx编译和调试相关的知识,希望对你有一定的参考价值。

  1. nginx源码编译,依赖于pcre和zlib

  2. 下载源码后,通过./configure --help可以查看编译选项,为了增加gdb调试信息,使用./configure --with-cc-opt=‘-g -o0‘和make CFLAGS="-g -o0" 

  3. 为了方便调试可以启动一个worker进程

  4. nginx对gdb也有辅助支持,用debug_points配置项:stop或者abort,表示在遇到严重错误的时候,

    ngingx的进程可以stop住。如果是abort,可以设置生成core文件。

  5. 关于宏,宏默认是直接替换的,如果在编译的时候,将-g 改为--ggdb3可以保留宏,但是增大了可执行二进制文件。info macro NGX_OK/ macro expand NGX_OK/p NGX_OK。如果info 没有找到,可以list文件加载一下后,再去执行info命令。

  6. 编译的时候可以增加--with-debug,以便生成调试信息。

  7. 配置文件的错误日志: error-log logs/error.log debug_http或者其他参数,只打印自己想要的。

  8. strace/pstack:  strace -t -T -o -f -p显示进程调用;pstack显示调用栈。

  9. 一次性获得nginx的全部执行流程:system tap;-finstrument-functions addr2line.sh;

  10. 加桩调试,在代码中嵌入自己的桩函数进行调试。

  11. 自己写代码,封装http报文,构造nginx异常场景来进行观察。

以上是关于nginx编译和调试的主要内容,如果未能解决你的问题,请参考以下文章

Nginx编译配置脚本篇(10)- Makefile相关脚本

求大神指导Centos7 源码编译安装Nginx+PHP 配置动静分离

工作感悟深入理解Nginx及使用Nginx实现负载均衡

Nginx 调试模块 echo-nginx-module

Nginx 调试模块 echo-nginx-module

怎么编译安装nginx1.8.1