static ngx_command_t ngx_http_lua_cmds[] = {
//...
{ ngx_string("init_worker_by_lua_file"),
NGX_HTTP_MAIN_CONF|NGX_CONF_TAKE1,
ngx_http_lua_init_worker_by_lua,
NGX_HTTP_MAIN_CONF_OFFSET,
0,
(void *) ngx_http_lua_init_worker_by_file },
//...
}
char *
ngx_http_lua_init_worker_by_lua(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf)
{
u_char *name;
ngx_str_t *value;
ngx_http_lua_main_conf_t *lmcf = conf;
dd("enter");
/* must specify a content handler */
if (cmd->post == NULL) {
return NGX_CONF_ERROR;
}
if (lmcf->init_worker_handler) {
return "is duplicate";
}
value = cf->args->elts;
lmcf->init_worker_handler = (ngx_http_lua_main_conf_handler_pt) cmd->post;
if (cmd->post == ngx_http_lua_init_worker_by_file) {
name = ngx_http_lua_rebase_path(cf->pool, value[1].data,
value[1].len);
if (name == NULL) {
return NGX_CONF_ERROR;
}
lmcf->init_worker_src.data = name;
lmcf->init_worker_src.len = ngx_strlen(name);
} else {
lmcf->init_worker_src = value[1];
}
return NGX_CONF_OK;
}
init_worker_by_lua_file流程
于 2023-08-07 14:12:22 首次发布