Сведения о вопросе

DUNKER

08:10, 25th August, 2020

Теги

PHP   Nginx    

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

Просмотров: 340   Ответов: 6

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

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

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

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

Спасибо



  Сведения об ответе

DAAA

14:07, 19th August, 2020

Можно. Назначить расширению 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 вызывается только один раз, при первом обращении
Минусы: требуется больше места на диске; при изменении оригинального файла нужно удалять сгенерированные


  Сведения об ответе

lourence

06:07, 9th August, 2020

Напрашивается вопрос: Зачем?.. Nginx намного лучше выдает изображения
А по сабжу. Rewrite наше все.


  Сведения об ответе

VERSUION

15:19, 24th August, 2020

В php собираете изображение, выставляете нужные заголовки и отдаете. В чем проблема-то?


  Сведения об ответе

DINO

13:03, 25th August, 2020

Посмотрите конфиг nginx на старом сервере если есть возможность.


  Сведения об ответе

+-*/

20:44, 6th August, 2020

Если я Вас правильно понял, картинки физически не существуют, а должны генерироваться скриптом (по заданным GET-параметрам). В таком случае читайте про директиву nginx try_files — она проверяет существование файла и указывает куда перейти если его нет.


  Сведения об ответе

padenie

21:06, 1st October, 2020

Смотрите в сторону timthumb
begenote.ru/php/9/

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться