Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re[2]: ngx_http_layouts_filter_module
Hi, Igor.
По идее всё просто: ПЕРЕД страницей (после HTTP-заголовков видимо)
вставить верхний layout (неважно, что после этого будет <head>,
<html>..., всё равно ДОСТАТОЧНО нормально работает); и ПОСЛЕ страницы
вставить нижний layout.
Мне казалось, что вся страница (не заголовки, они вроде как отдельно)
хранится в некой переменной (или в указателе, неважно). Поэтому
думалось что достаточно ПЕРЕД передачей этой переменной передать
верхний layout, а ПОСЛЕ передачи этой переменной передать нижний
layout.
Развитие "парсить html-ку на тему поиска <html> и вставки верхнего
layout'а точно после неё" можно оставить на (далёкое) будущее.
Было бы вкусно иметь все фичи: файлы, FastCGI, ответы некоего
http-сервера (тело опять же, без заголовков есс-но). Но файлы - это
_необходимый_ минимум :-).
И ещё: файлы, если они будет кэшированы, должны перечитываться хотя
бы по -HUP (чтобы изменения этих файлов были подхвачены).
>> Решил попробовать сделать модуль а-ля mod_layout собственноручно,
>> в помощь таким же страждущим. Всвязи с этим необходима консультативная
>> помощь тех, кто более-менее знает внутреннее устройство nginx (если
>> такие есть кроме Игоря).
>> Вводная: модуль должен добавлять ДО и ПОСЛЕ страницы заданные куски.
>> Фичность будет уточняться по мере написания/помощи.
>> Решил использовать шаблоном ngx_http_headers_filter_module.
>> Для начала вставить вместо одного из хидеров - верхний layout,
>> заданный директивой "layout текст_его"
> ngx_http_headers_filter_module - это неудачный старт для подобной
> функциональности. В принципе, добавить такой модуль мне не сложно,
> нужно только оговорить функциональность. Я могу сделать следущее:
> тупо добавлять в конец ответа подзапрос (это может быть статический файл,
> ответ прокси или FastCGI). Никакого парсинга ответа - подзапрос будет
> после </html>, так же, как сделано на narod.ru и boom.ru (и вроде
> в соверменных браузерах вполне работает). Можно сделать такое же
> дубовое добавление перед ответом, но я не знаю, как к этому отнесутся
> бразуеры.
--
engineer
|