Я использую Nginx, и мне нужно иметь возможность генерировать изображения на лету. Когда клиент отправляет запрос на изображение, мне нужно запустить внешнюю программу для генерации изображения. Внешняя программа оставляет сгенерированный образ в файловой системе.
Кажется, что самым простым подходом было бы написать скрипт FastCGI, который запускает внешнюю программу и затем считывает образ из файловой системы, передавая его через FastCGI в nginx.
Однако это кажется неэффективным, поскольку мне нужно было бы написать свою собственную процедуру копирования файла, и файл копируется с диска в локальный буфер, затем в пакеты для передачи FastCGI в nginx, затем в буфер nginx и затем наконец в пакеты для отправки клиенту. Кажется, было бы более эффективно использовать способность nginx эффективно обслуживать статический контент.
В идеале я хотел бы, чтобы какой-нибудь способ заставил nginx подождать, пока образ не будет сгенерирован, и затем подать его с диска. Другая мысль состоит в том, что, возможно, в ответе FastCGI может использоваться какой-то заголовок, указывающий, что nginx должен на самом деле отправлять файл, а не ответ от сценария FastCGI. Возможен ли какой-либо из этих подходов?