Помогите разобраться с функциями

student09 at ngs.ru student09 at ngs.ru
Wed Apr 1 23:55:17 MSD 2009


>> 
>> Спасибо за ответ, а можно поподробнее?
>> 
> 
> Что именно подробнее?
> 
> -- 
> wbr, Kirill
> 

Функция ngx_http_memcached_pass() модуля 
ngx_http_memcached_module начинается с:
   if (mlcf->upstream.upstream) {
         return "is duplicate";
     }
что за дубликат здесь проверяется и в каких случаях он 
дублируется?
Дальше идет такой код:
value = cf->args->elts;
ngx_memzero(&u, sizeof(ngx_url_t));
u.url = value[1];      тут видимо в u.url ложится имя 
хоста мемкешеда
u.no_resolve = 1;      не разрешать? т.е не переводить в 
IP? почему??

mlcf->upstream.upstream = ngx_http_upstream_add(cf, &u, 
0); что то тут происходит? :)

...

  clcf = ngx_http_conf_get_module_loc_conf(cf, 
ngx_http_core_module);

     clcf->handler = ngx_http_memcached_handler; 
 устанавливаем обработчик, вся магия начинается тут? :)

     if (clcf->name.data[clcf->name.len - 1] == '/') { что 
лежит в clcf.name ?
         clcf->auto_redirect = 1;                  зачем 
это нужно?
     }

Чтобы понять что в какой последовательности вызывается в 
каждую функцию в модуле мемкеша вставил ngx_error_log()
формат сообщения  "->>> имя_функции" и вот что получилось:
2009/04/01 22:54:23 [emerg] 32681#0: ->>> 
memcached_create_loc_conf in 
/usr/local/nginx/conf/nginx.conf:16
2009/04/01 22:54:23 [emerg] 32681#0: ->>> 
memcached_create_loc_conf in 
/usr/local/nginx/conf/nginx.conf:34
2009/04/01 22:54:23 [emerg] 32681#0: ->>> 
memcached_create_loc_conf in 
/usr/local/nginx/conf/nginx.conf:43
2009/04/01 22:54:23 [emerg] 32681#0: ->>> 
memcached_create_loc_conf in 
/usr/local/nginx/conf/nginx.conf:50
2009/04/01 22:54:23 [emerg] 32681#0: ->>> 
memcached_create_loc_conf in 
/usr/local/nginx/conf/nginx.conf:57
2009/04/01 22:54:23 [emerg] 32681#0: ->>> memcached_pass 
in /usr/local/nginx/conf/nginx.conf:60
2009/04/01 22:54:23 [emerg] 32681#0: ->>> 
memcached_create_loc_conf in 
/usr/local/nginx/conf/nginx.conf:68
2009/04/01 22:54:23 [emerg] 32681#0: ->>> 
memcached_merge_loc_conf in 
/usr/local/nginx/conf/nginx.conf:133
2009/04/01 22:54:23 [emerg] 32681#0: ->>> 
memcached_merge_loc_conf in 
/usr/local/nginx/conf/nginx.conf:133
2009/04/01 22:54:23 [emerg] 32681#0: ->>> 
memcached_merge_loc_conf in 
/usr/local/nginx/conf/nginx.conf:133
2009/04/01 22:54:23 [emerg] 32681#0: ->>> 
memcached_merge_loc_conf in 
/usr/local/nginx/conf/nginx.conf:133
2009/04/01 22:54:23 [emerg] 32681#0: ->>> 
memcached_merge_loc_conf in 
/usr/local/nginx/conf/nginx.conf:133
Почему ngx_memcached_create_loc_conf, 
ngx_memcached_merge_loc_conf вызывается аж по 5 раз?

спасибо за ответы :)


 
----------------
 НГС.ПОЧТА - http://mail.ngs.ru





More information about the nginx-ru mailing list