Задать вопрос
@mihalich

Отдача картинок с GET параметрами не средствами nginx, а php

Тех. поддержка нашего выделенного сервера в аренду (под их управлением) упорно морочит голову, в ответ на вопрос:

Можно ли сделать, чтобы запросы изображений с GET параметрами отдавались php, а не nginx?
«www.site.ru/upload/articles/58fa0825907dc76e67e8cb1150a7ac36.jpg?w=100&h=100&strict»

При этом, что данная фича работает на нашем старом сервере, который админил фрилансер (но он пропал).

Куда тыкнуть пальцем тех.поддержку?

Спасибо
  • Вопрос задан
  • 3146 просмотров
Подписаться 3 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 6
Можно. Назначить расширению jpg обработчиком php например (тогда в jpg надо хранить текст скрипта :) ).

Или, как выше сказано, rewrite/redirect: из запроса GET /upload/articles/58fa0825907dc76e67e8cb1150a7ac36.jpg?w=100&h=100&strict делать запрос GET /superscript.php?path=/upload/articles/58fa0825907dc76e67e8cb1150a7ac36.jpg&w=100&h=100&strict

Хотя, если стоит задача масштабирования, я бы пошёл другим путём:
— при запросе nginx проверяет есть ли файл /upload/articles/58fa0825907dc76e67e8cb1150a7ac36_100х100_strict.jpg
— если нет, то вызывает php для генерации
— отдаёт файл (он уже есть обязательно, если не было фатальных ошибок)

Плюсы: php вызывается только один раз, при первом обращении
Минусы: требуется больше места на диске; при изменении оригинального файла нужно удалять сгенерированные
Ответ написан
@ID175055
Напрашивается вопрос: Зачем?.. Nginx намного лучше выдает изображения
А по сабжу. Rewrite наше все.
Ответ написан
@Serator
В php собираете изображение, выставляете нужные заголовки и отдаете. В чем проблема-то?
Ответ написан
@Nc_Soft
Посмотрите конфиг nginx на старом сервере если есть возможность.
Ответ написан
Комментировать
artoodetoo
@artoodetoo
Если я Вас правильно понял, картинки физически не существуют, а должны генерироваться скриптом (по заданным GET-параметрам). В таком случае читайте про директиву nginx try_files — она проверяет существование файла и указывает куда перейти если его нет.
Ответ написан
@Thomas
Смотрите в сторону timthumb
begenote.ru/php/9/

Кеширование уже пережатых картинок уже есть.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы