как то предыдущщие 2 письма не дошли до листа :) видимо gmail съел,
так что дублирую
On 11/26/05, Igor Sysoev <is@xxxxxxxxxxxxx> wrote:
On Sat, 26 Nov 2005, proforg wrote:
по поводу ngx_http_memcached_module - а нет ли случайно в планах модуля
котороый просто позволял бы вытаскивать из memcached переменные для
дальнейшего использования в обработке локейшнов / ssi ?
В SSI можно попробовать примерно так:
<!--# include virtual="/mmc_var" -->value is "<!--# echo var="NAME" -->"
/mmc_var возвращает что-то вроде
<!--# set var="NAME" value="TEXT" -->
Ответ в результате выглядит так:
value is "TEXT"
К сожалению, не получается.
Если на локейшн /mmc_var поставить ssi on - то тогда <!--# set
var="NAME" value="TEXT" --> выполняется, но на уровень скрипта который
вызвал /mmc_var значение var не передается, т.к установлено внутри
подзапроса.
если же убрать ssi on, то <!--# set var="NAME" value="TEXT" --> просто
выводится в основном скрипте - ssi фильтр делает один проход по тексту
и обработать это уже не может ...
Игорь, а можно как нить простым способом заставить ssi применяться дважды ?
Для таких случаев. Это я думаю всё равно будет быстрее чем куча подзапросов ...
Сейчас - нет. Переменные создаваемые внутри SSI дальше текущего подзапроса
не хранятся. Надо будет исправить.
и второй вопрос :)
раза 2 в час nginx валится в кору. проявилось после того как стало
больше ssi подзапросов.
nginx-0.3.27
backtrace ::
#0 0xffffe410 in __kernel_vsyscall ()
(gdb) bt
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb7c32691 in raise () from /lib/tls/i686/cmov/libc.so.6
#2 0xb7c33f5b in abort () from /lib/tls/i686/cmov/libc.so.6
#3 0x08062a60 in ngx_debug_point () at ngx_process.c:529
#4 0x080549f5 in ngx_linux_sendfile_chain (c=0x80549f5, in=0x9e,
limit=678739397109) at ngx_linux_sendfile_chain.c:242
#5 0x0806261c in ngx_http_write_filter. () at
ngx_http_write_filter_module.c:214
#6 0x080755cc in ngx_http_chunked_body_filter.160 (r=0x9b3cd1c,
in=0x9bbb2d0) at ngx_http_chunked_filter_module.c:79
#7 0x08078214 in ngx_http_gzip_body_filter.165 (r=0x9b3cd1c,
in=0x9bbb2d0) at ngx_http_gzip_filter_module.c:467
#8 0x08078f4c in ngx_http_postpone_filter.166 (r=0xb3cd1c09,
in=0xbbb2d008) at ngx_http_postpone_filter_module.c:119
#9 0x08079a8c in ngx_http_charset_body_filter.167 (r=0x8079a8c,
in=0x81f3de4) at ngx_http_charset_filter_module.c:225
#10 0x0807afc0 in ngx_http_ssi_body_filter.168 (r=0x9bbb2d0, in=0x0)
at ngx_http_ssi_filter_module.c:710
#11 0x08062fa4 in ngx_output_chain (ctx=0x0, in=0x6) at ngx_output_chain.c:217
#12 0x08062af2 in ngx_http_copy_filter.151 (r=0x7630308,
in=0xb3c17808) at ngx_http_copy_filter_module.c:109
#13 0x08076303 in ngx_http_range_body_filter.161 (r=0x9bbb2d0, in=0x0)
at ngx_http_range_filter_module.c:460
#14 0x0805d0ac in ngx_http_writer.147 (r=0x9bbb2d0) at ngx_http_request.c:1652
#15 0x0806e98b in ngx_http_finalize_request (r=0x0, rc=6) at
ngx_http_request.c:1488
#16 0x080697b3 in ngx_http_upstream_process_body.156. () at
ngx_http_upstream.c:1744
#17 0x0807119a in ngx_http_upstream_send_response.156 (r=0x0, u=0x6)
at ngx_http_upstream.c:1420
#18 0x0806d8fa in ngx_http_upstream_process_header.156. () at
ngx_http_upstream.c:1140
#19 0x08057144 in ngx_epoll_process_events.141 (cycle=0x8157ad8,
timer=3081870992, flags=135625432) at ngx_epoll_module.c:516
#20 0x0804acbc in ngx_process_events_and_timers (cycle=0x0) at ngx_event.c:243
#21 0x08053a36 in ngx_worker_process_cycle.138 (cycle=0xb7d3aff4,
data=0) at ngx_process_cycle.c:728
#22 0x0804dc95 in ngx_spawn_process (cycle=0x0, proc=0x6, data=0x75f8,
name=0x80d0e48 "Х\031\r\b(\016\r\bЬ\030\r\bЬ\030\r\b", respawn=0) at
ngx_process.c:187
#23 0x0804e293 in ngx_reap_childs.138 (cycle=0x0) at ngx_process_cycle.c:555
#24 0x0804c98e in ngx_master_process_cycle (cycle=0x0) at
ngx_process_cycle.c:157
#25 0x0804a8df in main (argc=135076088, argv=0x80d18f8) at nginx.c:313
fr 4
p *in->buf
p *in->next->buf
p *in->next->next->buf
и так далее пока не скажет "не шмогла".
Всё отладку переносим в личную почту.
Игорь Сысоев
http://sysoev.ru