Re: [Bug] обрезается строка в alias
Anton Kuznetsov
tosknight на gmail.com
Ср Июн 2 19:52:30 MSD 2010
Ясно. Честно потратил часов 6 на дебаг и выгугливание, не накопал.
Думаю, стоит как минимум дать ссылку в cоотв. разделе
http://sysoev.ru/nginx/ , все-таки туда смотришь в первую очередь.
Размеры изображений произвольные, в этом вся фишка.
Ну что ж, ясно. Придется заставить поработать бекенд за кешера, пока
что-то не придумается.
А если заставить в подобном месте поработать встроенный перл, большой
оверхед получается? Не хотелось бы из-за одного локейшена терять по
остальному.
Спасибо за сервер, в 95% случаев все удается сделать, как хочется.
2010/6/2 Igor Sysoev <igor на sysoev.ru>:
> On Wed, Jun 02, 2010 at 04:13:37PM +0400, Anton Kuznetsov wrote:
>
>> Похоже на баг.
>>
>> ubuntu 10.04
>> nginx 0.7.65 (из пакетов)
>>
>> кеш картинок в файловой системе, пример
>> /path/to/images/12/12345_240x240.png
>> запросы, пример
>> /images/12345?size=200x200
>>
>> ожидаемый результат - отдать нужную картинку
>>
>> действительный результат:
>> /images/12345 - работает, отдается /path/to/images/12/12345_240x240.png
>> /images/12345?size=240x240 - не работает, уходит на бекенд.
>>
>> в error логе видно, что удалены последние четыре символа из alias
>> /path/to/images/12/12345_240x240
>>
>> если поставить в alias еще одну переменную, сохраненную из $arg_foo,
>> удаляются 8 байт.
>>
>> кусок конфига:
>>
>> location ~ /image/(\d+)(\d\d\d) {
>> types { }
>> default_type image/png;
>> set $size "240x240";
>> if ($arg_size) {
>> set $size "${arg_size}";
>> }
>> alias "/path/to/images/$1/$1$2_${size}.png";
>> error_page 404 405 502 504 = @fallback;
>> }
>
> Это из-за if. Если число размеров предопределено, то можно так:
>
> map $arg_size $size {
> default 240x240;
> 200x200 200x200;
> ...
> }
>
> server {
>
> location ~ /image/(\d+)(\d\d\d) {
> types { }
> default_type image/png;
> alias "/path/to/images/$1/$1$2_${size}.png";
> error_page 404 405 502 504 = @fallback;
> }
>
> --
> Игорь Сысоев
> http://sysoev.ru
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru
>
Подробная информация о списке рассылки nginx-ru