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) 编辑 收藏 举报