Re: resize image как задать переменную, если ее нет в аргументах

Maxim Dounin mdounin at mdounin.ru
Wed Jun 17 13:05:37 UTC 2015


Hello!

On Wed, Jun 17, 2015 at 02:03:30AM -0400, cilrill wrote:

> спасибо.
> 
> вылезла не понятная мне проблема (
> завел переменные с проверкой
> 
> server {
>         listen 80;
>         server_name static.vhost static.vhost2;
> 
>         location ~ ^/(.*\.(?:jpg|gif|png))$ {
>         alias /home/$host$uri;
>         set $q 75;
>         if ($arg_q) {
>         set $q $arg_q;
>         }
>         if ($arg_s) {
>         set $s $arg_s;
>         }
>         image_filter resize $s -;
>         image_filter_jpeg_quality $q;
>         access_log /var/log/nginx/access.img.log;
>         error_page      415 = @images;
>         }
> 
>         location @images {
>         root /home/$host;
>         }
> }
> 
> развалилось )
> 
> в дебаге вот такое
> 
> 2015/06/17 05:06:27 [debug] 818#0: *105 content phase: 22
> 2015/06/17 05:06:27 [debug] 818#0: *105 http script copy: "/home/"
> 2015/06/17 05:06:27 [debug] 818#0: *105 http script var: "static.vhost"
> 2015/06/17 05:06:27 [debug] 818#0: *105 http script var: "/bg.png"
> 2015/06/17 05:06:27 [debug] 818#0: *105 http filename:
> "/home/static.vhost/bg.png1.1
> Host"

Что показывает nginx -v?
Выглядит, как проблема, исправленная в nginx 1.7.1:

    *) Bugfix: the "alias" directive used inside a location given by a
       regular expression worked incorrectly if the "if" or "limit_except"
       directives were used.

Отмечу, что сейчас имеет смысл пользоваться 1.8.0 или 1.9.2, более 
старые версии - исключительно на свой страх и риск.

[...]

> я не правильно пути для alias формирую?

Вообще тут нет смысла использовать alias, достаточно сказать

    root /home/$host;

Остальное nginx сделает сам, и более корректно, чем при 
использовании alias'а (не говоря уже про более эффективно).

-- 
Maxim Dounin
http://nginx.org/



Подробная информация о списке рассылки nginx-ru