ImageCache не работает (nginx). [Решено]

Главные вкладки

Аватар пользователя nleo nleo 16 августа 2009 в 2:08

Итак использую Node Gallery. Эта галерея работае с ImageCache. ImageCache нивкакую не хочет создавать превьюшки.

Вот конфиг, что я пробовал использовать:

        server {
        listen      _мой_ип_:80;
        server_name _домен_;

        location / {
            proxy_pass http://127.0.0.1:8080;
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
               
        location ~* ^.+\.(jpeg|jpg|png|js|css|zip|gz|bz2?|rar)$ {            
                root   /home/nleo/www/drupal;
                access_log /var/www/httpd-logs/_домен_.access.ng.log;
        }
       
         location ^~ /files/imagecache/ {                
            root   /home/nleo/www/drupal;
            index  index.php index.html;
            # assume a clean URL is requested, and rewrite to index.php
            if (!-e $request_filename) {
              rewrite  ^/(.*)$  /index.php?q=$1  last;
              break;
            }                  
        }
           
                       
    }

в location ^~ /files/imagecache/ {...} пробовал:

Вариант 2:

        location ^~ /files/imagecache/ {                 
            root   /home/nleo/www/drupal;                  
            error_page 404 = [user=backend]backend[/user];
        }
        location [user=backend]backend[/user] {
            proxy_pass  http://127.0.0.1:8080;
            proxy_redirect      off;
 
            proxy_set_header    Host    $host;
            proxy_set_header    X-Real-IP       $remote_addr;
            proxy_set_header    X-Forwarded-For $remote_addr;
        }

<---------------------------------------------------------------------------------------->
Вариант 3:

            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
            if (!-f $request_filename) {
               proxy_pass http://127.0.0.1:8080;
            }            
            root   /home/nleo/www/drupal;                  
           

Обновил nginx с 0.4 до 0.6 и снова все попробовал - неработает. Может даже дело не nginx, потомучто вроде бы я уже на хостинге эксперементировал с ним, точно не помню.

Да еще в настройках галереи прописал пути отличные от стандартных используя %uid, %nid. Галерея кладет куда надо.

Сервер: Debian Apache Nginx

Комментарии

Аватар пользователя nleo nleo 16 августа 2009 в 2:13

да в admin/build/imagecache/2 где должен быть предпросмотр кропнутого изображения тоже ничего не показывает

если открыть саму картинку, которая должны быть кропнутой, то nginx возвращает 404. Значит все-таки nginx

Аватар пользователя nleo nleo 16 августа 2009 в 18:50

в общем сделал. но это пи...

отключил nginx, напрямую через апач тоже не работает. вынес подчистую модули(просто переустанавливать пробовал до этого), заново wget'ом (до этого через фтп распакованные заливал) вытянул модули с drupal.org, установл - заработало

чтобы работало через nginx в конфиге использовал следующее:

        location ~* ^.+\.(jpeg|jpg|png|js|css|zip|gz|bz2?|rar)$ {            
                root   /home/nleo/www/drupal;
                access_log /var/www/httpd-logs/_домен_.access.ng.log;
                error_page 404 = [user=backend]backend[/user];
        }

        location [user=backend]backend[/user] {
            proxy_pass  http://127.0.0.1:8080;
            proxy_redirect      off;
 
            proxy_set_header    Host    $host;
            proxy_set_header    X-Real-IP       $remote_addr;
            proxy_set_header    X-Forwarded-For $remote_addr;
        }

Аватар пользователя Siegfrid@drupal.org Siegfrid@drupal.org 25 марта 2010 в 18:27

Столкнулся с аналогичной проблемой, в случае работы imagecache через nginx ни в какую не находятся файлы:

2010/03/25 15:18:34 [error] 21585#0: *72 open() "/var/www/multisite/www/sites/example.ru/files/imagecache/taxonomy-image/category_pictures/zagorodnyy_dom.jpg" failed (2: No such file or directory), client: 91.210.4.1, server: example.ru, request: "GET /sites/example.ru/files/imagecache/taxonomy-image/category_pictures/zagorodnyy_dom.jpg HTTP/1.0", host: "example.ru", referrer: "http://example.ru/admin/content/taxonomy/taxonomy_image"

Хотя файл в каталоге лежит и доступен через порт апача - 81. Страно, но все остальные файлики, создаваемые не imagecache, тягаются без проблем...

Может кто нашел иное решение этой проблеме?

Аватар пользователя Siegfrid@drupal.org Siegfrid@drupal.org 26 марта 2010 в 15:14

Все решилось с помощью вот этих настроек:
# imagecache needs to have php read any files that it's planning to manipulate
location ^~ /sites/drupal-6.x/files/imagecache/ {
index index.php index.html;
# assume a clean URL is requested, and rewrite to index.php
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
break;
}
}

Аватар пользователя wolnavod wolnavod 20 мая 2010 в 14:11

<a href="mailto:Siegfrid@drupal.org">Siegfrid@drupal.org</a> wrote:
Все решилось с помощью вот этих настроек:
# imagecache needs to have php read any files that it's planning to manipulate
location ^~ /sites/drupal-6.x/files/imagecache/ {
index index.php index.html;
# assume a clean URL is requested, and rewrite to index.php
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
break;
}
}

написал хостеру, вот его ответ
"я убрал обработку картинок nginx для указанного домена, сейчас работать должно."
ПОМОГЛО !!! УРА )

Аватар пользователя Ner2Sky Ner2Sky 26 мая 2010 в 17:02

"wolnavod" wrote:
написал хостеру, вот его ответ
"я убрал обработку картинок nginx для указанного домена, сейчас работать должно."
ПОМОГЛО !!! УРА )

и что надо писать хостеру?

Аватар пользователя Bazilio Bazilio 3 апреля 2011 в 14:35

Ner2Sky wrote:
"wolnavod" wrote:
написал хостеру, вот его ответ
"я убрал обработку картинок nginx для указанного домена, сейчас работать должно."
ПОМОГЛО !!! УРА )

и что надо писать хостеру?


Хостеру надо указань на его некомпетентность.
Есть решения более удачные, без делания nginx бесполезным: http://www.drupal.ru/node/15335

Аватар пользователя MaNaX MaNaX 3 апреля 2011 в 15:09

а я решил по другому - отослал хостеру просьбу отключить обработку картинок nginx'ом, т.к. много поддоменов и каждый раз просить настраивать на какую-нибудь папку - как-то нехошацца:
location ~* ^.+\.(ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|js)$ {

Аватар пользователя Aurochs@drupal.org Aurochs@drupal.org 31 октября 2011 в 16:21

2 дня бился думал imagecache не работает) А оказывается у меня модуль ImageAPI требовал ImageMagick, который был не установлен))) Lol
Может кому пригодится)))

Аватар пользователя vyck24 vyck24 6 августа 2012 в 7:54

Здраствуйте NLeo!
Я сталкнулся с этой же проблемой! После перехода на vds на nginx imagecache не работает.
Из того что я понел нужно всё это добавить в nginx.conf. Я пробовал и не работает. Просьба напишите целиком то что я должен добавить и может мне стоит ещё что нибудь сделать (перезагрузка сервера) чтобы заработал.
сайт veevo.ru, буду благодарен!