2012-03-07 3 views
1

Пытается сгенерировать изображение, если оно не существует через перенаправление Nginx на скрипт, но проблемы с этой простой проблемой. Написал следующую конфигурацию (попробовал разные варианты, это последняя), но она по-прежнему не работает.Nginx, обслуживающий изображения

location /img/(\d+)\.(jpg|png|gif)$ { 
     root /path/to/img_dir; 
     expires max; 
     add_header Pragma public; 
     add_header Cache-Control "public"; 
     try_files $1.$2 http://site.com/generate_img/$1.$2; 
} 

используется Также этот код InstEd из try_files:

if (!-f $document_root/$1.$2) { 
    rewrite^http://site.com/generate_img/$1.$2; 
} 

ответ

2
  1. try_files не поддерживает внешние переадресовывает. Только внутренние переадресации. Вам необходимо использовать внутреннее местоположение.

  2. Ваше местоположение не является местом, основанном на регулярных выражениях. Таким образом, захваты бесполезны. Попробуйте:

    location ~* ^/img/([[:digit:]]+)\.(gif|jpe?g|png)$ { 
        try_files $1.$2 /generate_image/$1.$2; 
    } 
    

Я предполагаю, что generate_image находится на том же сервере.

+0

Я все еще получаю 404 страницы. Пытался перенаправить на простую страницу html, но не изменил. Может быть, речь идет о корневом пути документа? – zona

+0

'location ~ * ^/image_dir/([[: digit:]] +) \. (Jpe? G | png | gif) $ { \t root/путь/to/domain/dir; \t try_files /image_dir/$1.$2 /test.html; } ' попробовал эту конфигурацию – zona

Смежные вопросы