MichaelYeh

导航

Nginx调试

  最近准备写一个Nginx的自定义模块,添加一些功能,模拟公司的服务器功能(使用HTTP协议):

1 首先准备环境,从nginx.org下载最新的代码,编译前需要先安装一些信赖的库,像zlib, openssl, pcre,在Ubuntu上面可以直接用一条命令搞定(如果你不需要每个库都从源码的编译的话)

  sudo apt-get build-dep nginx。

  apt-get build-dep 很好用,好像编译很多Ubuntu源里有的程序或者库都可以用(我之前编译Erlang就用的 sudo apt-get build-dep erlang).

2 为了方便调试编译Nginx需要设置选项:./configure --with-debug.

3 修改日志选项,一般在安装目录下config/nginx.conf,文件开始部分有三行:

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

选择一行,去掉注释头#,改成 error_log logs/error.log debug。

4 在nginx.conf里添加 

worker_rlimit_core 500M;

working_directory /path/to/cores/; 

然后

gdb /path/to/nginx /path/to/cores/nginx.core

bt

backtrace full

如果gdb backtrace 显示没有符号表,那就可能检验编译选项有没有问题,或者重新编译了。

这几个设置是比较通用的,如果习惯看英文文档,感兴趣的朋友建议对照 http://wiki.nginx.org/Debugging 阅读。

环境设置基本没问题了,下一步要开始看看Nginx 代码难逻辑了,希望这个星期能拿出个Demo来试试,:)

posted on 2011-05-25 23:18  MichaelYeh  阅读(2111)  评论(0编辑  收藏  举报