在nginx.conf
加上以下配置
location /echo {
ndg_echo ;
}
报错:
nginx: [emerg] unknown directive.../nginx.conf:...
网络上有许多的处理办法,但仍未能解决我的问题。
如:
commands
中的ngx_string
里边的参数是不是和配置文件nginx.conf
中的参数一样
static ngx_command_t ngx_http_ndg_echo_cmds[] =
{
{
ngx_string("ndg_echo"),
NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, //CONF文件少,作用域和类型不全
ngx_http_ndg_echo,
NGX_HTTP_LOC_CONF_OFFSET,
offsetof(ngx_http_ndg_echo_loc_conf_t, msg),
NULL
},
ngx_null_command
};
解决方法:
修改指令的作用域和类型,即将NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1
改为NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LMT_CONF | NGX_CONF_NOARGS|NGX_CONF_TAKE1
,加大其作用域和类型。
代码具体缺的是那部分指令作用域和类型仍待探索,但确实解决了nginx: [emerg] unknown directive...
的问题。
static ngx_command_t ngx_http_ndg_echo_cmds[] =
{
{
ngx_string("ndg_echo"),
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LMT_CONF | NGX_CONF_NOARGS|NGX_CONF_TAKE1,
ngx_http_ndg_echo,
NGX_HTTP_LOC_CONF_OFFSET,
offsetof(ngx_http_ndg_echo_loc_conf_t, msg),
NULL
},
ngx_null_command
};