Welcome! Log In Create A New Profile

Advanced

Re: Пара вопросов о nginx

October 25, 2009 01:16AM
Maxim Dounin Пишет:

> Был такой fancy index module, не знаю жив ли ещё.
Видел я его, но он какой-то уродский на вид, практически не изменяется из конфига, толку вообщем мало.

> Потому что if() работает не так, как вам кажется. Есть
> мнение, что использовать if() в конфигах nginx'а имеет смысл в
> том и только в том случае, если вам не хватает приключений.
А какие ещё варианты? Как проверить на существование пары файлов и взависимости от их наличия придать определенное значение какому-либо параметру, без if()?

>> Возможно кто-то писал модули, может подскажете, а
>> как правильно, с точки зрения всех прослоек работы с
>> файлами, кешированием и прочим, имея путь до файла в
>> ngx_str_t получить содержимое файла, скажем в другой
>> ngx_str_t? Я так понял копать нужно в сторону
>> ngx_open_cached_file, но что-то пока не получается.
> Use The Source, Luke!
Ну, это само собой, но кода много, во всём разбираться понадобится много времени, возможно кто-то наизусть знает сорцы и может ткнуть в конкретное место или вообще процедурку набросать.

> Но правильнее всего - вообще не получать содержимое
> файла в другой ngx_str_t. Если задача - отдать
> содержимое файла клиенту, то решение - подзапрос.
Уже пробовал через ngx_http_subrequest, но там проблема в том, что вставить содержимое надо в определенное место на странице, которая собирается в буфере и строится по кускам через ngx_cpymem, а потом целиком отсылается. Поэтому результат работы нужен в ngx_str_t, чтобы мона было запихать в середину буфера на нужное место.

> Или вообще выдать ssi инструкцию, а дальше пусть ssi
> модуль с этим и разбирается.
Да, возможно. Переделал под ssi. В принципе осталась только одна проблема. Почему-то такое:
set $temp "/12 34/56 78/";
if ($temp ~ ^(.*)$) {
set $dir $1;
}
приравнивает переменной $dir значение кодированное в url entities... Т.е. получается /12%2034/56%2078/. Как бы зарубить этот "интеллект", хотя бы грубым хаком в сорцах, что-то место, творящее такое колдунство не нашел :-(

> Именно location - единица конфигурации в nginx, так что
> как раз разнесение разных конфигураций по разным
> location'ам - правильно и единственно верно.
Только не когда они измеряются тысячами. Плюс постоянно дергать нгинкс на перечитку конфига после каждого изменения, когда это всё бы решилось двумя простыми if`ами и работало бы динамически :-/
Subject Author Posted

Пара вопросов о nginx

Ck-NoSFeRaTU October 24, 2009 05:56PM

Re: Пара вопросов о nginx

Maxim Dounin October 24, 2009 07:28PM

Re: Пара вопросов о nginx

Ck-NoSFeRaTU October 25, 2009 01:16AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 87
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready