看源代码时,会注意到有些宏(宏全部大写,中间用下划线隔开,这是nginx代码规范。实际上,绝大多数系统均采用此规范)找不到定义,例如NGX_PREFIX、NGX_CONF_PREFIX、NGX_CONF_PATH等。
实际上,这些宏定义由configure程序进行自动配置时生成。配置时会自动生成ngx_auto_config.h文件(如果你用source insight阅读源代码,需要将该文件加入工程),如下。
./objs/ngx_auto_config.h(此处列出其中一部分常用的宏,未按顺序)
- #ifndef NGX_COMPILER
-
#define NGX_COMPILER "gcc 4.6.1 20110908 (Red Hat 4.6.1-9) (GCC) "
-
#endif
-
-
#ifndef NGX_PCRE
-
#define NGX_PCRE 1
-
#endif
-
-
#ifndef NGX_PREFIX
-
#define NGX_PREFIX "/usr/local/nginx/"
-
#endif
-
-
#ifndef NGX_CONF_PREFIX
-
#define NGX_CONF_PREFIX "conf/"
-
#endif
-
-
#ifndef NGX_CONF_PATH
-
#define NGX_CONF_PATH "conf/nginx.conf"
-
#endif
-
-
#ifndef NGX_PID_PATH
-
#define NGX_PID_PATH "logs/nginx.pid"
-
#endif
-
-
#ifndef NGX_LOCK_PATH
-
#define NGX_LOCK_PATH "logs/nginx.lock"
-
-
#ifndef NGX_ERROR_LOG_PATH
-
#define NGX_ERROR_LOG_PATH "logs/error.log"
-
#endif
-
-
#ifndef NGX_HTTP_LOG_PATH
-
#define NGX_HTTP_LOG_PATH "logs/access.log"
-
#endif
-
-
#ifndef NGX_HTTP_CLIENT_TEMP_PATH
-
#define NGX_HTTP_CLIENT_TEMP_PATH "client_body_temp"
-
#endif
-
-
#ifndef NGX_HTTP_PROXY_TEMP_PATH
-
#define NGX_HTTP_PROXY_TEMP_PATH "proxy_temp"
-
#endif
阅读(2165) | 评论(0) | 转发(0) |