Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug] обрезается строка в a lias
- To: nginx-ru@xxxxxxxxx
- Subject: Re: [Bug] обрезается строка в a lias
- From: Anton Kuznetsov <tosknight@xxxxxxxxx>
- Date: Wed, 2 Jun 2010 19:52:30 +0400
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=UH9z6HkfMbuQCm6a7LHv54dRQFQhkUoJhbA8tN3igL4=; b=iL8/ydUF8oXLeFaKPPBZOv7f0IeDXUs1FPjcSQ8EdYhZun5RoNKwDNvf2kY8rE91E4 zuw0Ifz6Pz5w+ZD+qfbvne0k0kNwbMCw3AklsHTPtfJEFTjm84bk02pGwHbRjKIOq5r+ 68ehqgWi7W4EjhtLkZVsv2VQjmGw2ietOtDvo=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=eUma09I6dZ5+PPLuBF2mzHi2z16gLjF9fGsleoehKkk3iHmCFel16aoTk/cYwOdO/z KK4nyPc9EGSIw5FJI+XDaX2skgozstkgp81+vc5qZ5VAKIjvTOea2q8QbXcWxi0gdwIx cZoZNcGACKoCFEvO8E7Y0X0/+bZCsozLGUAmU=
- In-reply-to: <20100602124359.GC2410@xxxxxxxxxxxxx>
- References: <AANLkTinUk6-VEusxXxwdcL3ozJvNvrrbB7e2w_2k3no6@xxxxxxxxxxxxxx> <20100602124359.GC2410@xxxxxxxxxxxxx>
Ясно. Честно потратил часов 6 на дебаг и выгугливание, не накопал.
Думаю, стоит как минимум дать ссылку в cоотв. разделе
http://sysoev.ru/nginx/ , все-таки туда смотришь в первую очередь.
Размеры изображений произвольные, в этом вся фишка.
Ну что ж, ясно. Придется заставить поработать бекенд за кешера, пока
что-то не придумается.
А если заставить в подобном месте поработать встроенный перл, большой
оверхед получается? Не хотелось бы из-за одного локейшена терять по
остальному.
Спасибо за сервер, в 95% случаев все удается сделать, как хочется.
2010/6/2 Igor Sysoev <igor@xxxxxxxxx>:
> 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@xxxxxxxxx
> http://nginx.org/mailman/listinfo/nginx-ru
>
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|