ssi & core

Igor Sysoev is at rambler-co.ru
Fri Feb 17 14:23:22 MSK 2006


On Fri, 17 Feb 2006, proforg wrote:

> как то предыдущщие 2 письма не дошли до листа :) видимо gmail съел,
> так что дублирую
>
>
> On 11/26/05, Igor Sysoev <is at rambler-co.ru> 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





More information about the nginx-ru mailing list