[РЕШЕНО] ImageCache + Nginx - объясните чайнику

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

Аватар пользователя Neverbalnost Neverbalnost 1 июля 2011 в 13:07

Значит история такая. Жила я себе, горя не знала и тут что-то такое случилось на нашем хостинге и им пришлось перенастраивать apache и nginx. И после этого imagecache трагически утратил способность делать тамбнейлы. При этом сгенеренное прежде прекрасно отображается. А новое не генерится ни в какую.
Пытала поддержку - они говорят что в душе не шарят в причинах этого сбоя и велели чинить всё самой - в частности перенастроить ngnix. Я почитала всякое насчет настройки nginx,и поняла что ничего в этом не понимаю.
Уважаемые сообщники, скажите пожалуйста, что исправить. Или скажите, где об этом написано для махровых гуманитариев.
В аттаче текущий конфиг.
Заранее большое спасибо.

ВложениеРазмер
Иконка простого текстового файла nginx.txt15.51 КБ

Комментарии

Аватар пользователя void89a void89a 1 июля 2011 в 13:16

«что-то такое случилось на нашем хостинге и им пришлось перенастраивать apache и ngnix.»
«велели чинить всё самой - в частности перенастроить ngnix.»

как то нелогично, их хостинг, они настраивали, и предлагают вам туда лезть ?

Аватар пользователя Neverbalnost Neverbalnost 1 июля 2011 в 13:48

Quote:
как то нелогично, их хостинг, они настраивали, и предлагают вам туда лезть ?

Мотивируют тем, что в целом сайты ведь работают, а сбой в работе конкретного модуля конкретной cms - это не их юрисдикция, это частности и они за это не отвечают.

Аватар пользователя Punk_UnDeaD Punk_UnDeaD 1 июля 2011 в 13:34

"Neverbalnost" wrote:
Пытала поддержку - они говорят что в душе не шарят в причинах этого сбоя

404 обрабатывается ngnix, а не передаёт по цепочке апачу

"Neverbalnost" wrote:
велели чинить всё самой - в частности перенастроить ngnix

это их прямые обязанности, тащемта, помочь вам настроить ngnix
ведь не вы же его ставили

"Neverbalnost" wrote:
Уважаемые сообщники, скажите пожалуйста, что исправить. Или скажите, где об этом написано для махровых гуманитариев.

+1
я сформулировал суть проблемы заказчику, заказчик в точности передал мои слова службе поддержки, на следующий день всё работало
как - я не знаю

Аватар пользователя Neverbalnost Neverbalnost 1 июля 2011 в 14:10

Punk_UnDeaD wrote:

404 обрабатывается ngnix, а не передаёт по цепочке апачу

Где это написано и что должно быть написано чтобы передавал?

Аватар пользователя Neverbalnost Neverbalnost 1 июля 2011 в 14:11

void89a wrote:
но предлагают настроть ngnix, настроика которого их прямая обязанность ?

Говорят, что не знают как мне надо чтобы они его настроили.

Аватар пользователя Punk_UnDeaD Punk_UnDeaD 1 июля 2011 в 14:14

"Neverbalnost" wrote:
Где это написано и что должно быть написано чтобы передавал?

понятия не имею
сам хотел бы узнать, заказчики иногда сталкиваются

Аватар пользователя marazmus marazmus 8 июля 2011 в 18:04

"Neverbalnost" wrote:
Говорят, что не знают как мне надо чтобы они его настроили.

Скажите, что должно быть так:

1) Все 404 ошибки Nginx должен передавать Апачу.

2) Все запросы на статические файлы должны обрабатываться Nginx.

Логика работы связки Apache+Nginx+ImageCache довольно простая:

1) Вариант, когда тумбнейла еще нет:

а) Тумбнейла еще нет, идет запрос на картинку тумбнейла

б) Nginx не находит этот файл на диске - ведь ImageCache еще не сгенерировал тумбнейл

в) Nginx передает 404 ошибку Апачу, типа
"Я не нашел файл http://site.ru/sites/default/files/imagecache/1024px/blabla.jpg, выдай юзеру 404 ошибку в браузер, это не моя работа, а твоя, так у меня в конфиге написано" Biggrin

г) Апач принимает этот запрос от Nginx, передает его Друпалу - так как в .htaccess Друпала написано, что перед тем, как выдать в браузер 404 ошибку, Друпал должен крепко подумать, а нет ли у него вариантов

д) В случае с ImageCache вариант есть - сгенерировать тумбнейл и выдать его Апачу.

е) Апач выдает тумбнейл в браузер посетителя.

2) Тумбнейл уже сгенерирован:

а) Nginx находит файл на диске и сразу выдает его в браузер посетителя, без запросов к Апачу (Друпалу).

В конфиге Nginx для каждого сайта должна быть прописана секция типа fallback, в которой прописывается, что все ошибки, которые Nginx не смог обработать, перекидываются Апачу. В панелях ISP Manager эта секция выглядит примерно так (XX.XX.XX.XX - IP вашего сервера):

                location [user=fallback]fallback[/user] {
                        proxy_pass http://XX.XX.XX.XX:8080;
                        proxy_set_header Host $host;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header X-Real-IP $remote_addr;
                }

Как-то так Smile