如何用GDB调试Nginx?

来源:互联网 发布:ubuntu 16.04 fcitx 编辑:程序博客网 时间:2024/05/11 09:04

下载源码, 解压后

./configure   --with-debug

make

make  install


Nginx提供了单进程模型和非守护进程的方式,由两个配置选项来控制:
守护进程配置:
daemon on | off  ;   Default: on
多进程配置:
master_process on | off   ;   Default: on


下来配置 nginx.conf 文件

在下面添加3行:

error_log   logs/error.log  debug;   # 只记录调试日志
master_process   off;   # 简化调试 此指令不得用于生产环境
daemon                  off;   # 简化调试 此指令可以用到生产环境


下来 gdb  nginx

(gdb) run    回车 即可正常设置断点, 查看日志了。


因为日志占用的空间非常大,为了更加便于收集日志,

Nginx还提供了一个配置选项用来设置只记录特定连接的调试信息,

这个配置选项为debug_connection。比如我们只对来自192.168.1.1的连接进行调试信息的记录,

配置如下: 

events {
    worker_connections  1024;

    debug_connection   192.168.1.1;
}

这时我们可以通过  tail -f logs/error.log -n 100|grep debug来进行日志过滤,查看相应的具体调试信息。