ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Трекинг в мультисерверной среде



Столкнулся с довольно стандартной проблемой - создавая распределённое приложение на стадии тестирования хочется иметь побольше деталей о том как именно была сгенерирована страница
Расклад у нас примерно следующий - само приложение на Ruby и сервится монгрелами, выдаёт статичный HTML код который полностью ложится в memcached. А nginx занимается тем что получив запрос пытается получить страницу из кеша и в случае неудачи проксирует запрос на один из монгрелов

Это работает быстро и надёжно но для дебага мне хотелось бы чтоб nginx к концу выдачи приписывал несколько деталей в виде комментария - идентификатор самого вебсервера, если страница получена из кеша то сообщение мол получил из кеша, если была отдана с монгрелов то с какого именно и за какое время. Переменные эти все в nginx есть но я что-то не соображу как это правильно вывести. Насколько я понимаю можно использовать ngx_http_sub_module - тогда переменные можно вписывать просто в текст. А можно через ngx_http_addition_module но тогда надо использовать либо перл либо SSI насколько я понимаю для собирания нужной информации в файл к тому же переменные например адрес конкретного монгрела доступны в пределах модуля upstream и не знаю доступны ли они вне его

Сейчас используется временный конфиг такого вида грубо

        location / {
            set $memcached_key "project:production:$uri";
            memcached_pass localhost:11211;
            error_page 404 = /ruby;
            error_page 502 = /ruby;
        }

        location /ruby {
            internal;
            proxy_pass http://mongrels;
        }


Посоветуйте плз как вернее организовать вывод таким образом чтоб поместить в него всю необходимую информацию, можно ли переменные будет просто использовать или их надо сначала глобально дефинировать и в пределах отдельных модулей инициализировать etc

Заранее благодарен


 




Copyright © Lexa Software, 1996-2009.