barkalov
@barkalov

Как с помощью nginx отдать файл, имя которого сгенерировано скриптом?

Делаю ЧПУ. Хочется чтобы nginx делал rewrite не на основе регулярки из конфига, а на основе результата работы скрипта.

Типа, как-то так:
location /products {
    proxy_pass localhost:1234/getProductFileName.js
    rewrite ^(.*)$ proxy_pass_result
}

Для примера:
  1. Запрос на /products/грунтовка.
  2. Nginx идет на localhost:1234/getProductFileName.js?грунтовка.
  3. Скрипт отвечает nginx'у (в теле или заголовке) строкой: /products/grunt.html
  4. Nginx делает rewrite и отдаёт /products/grunt.html (по изначальному адресу в браузере /products/грунтовка)

Я, конечно, могу отдавать скриптом сам файл (или пустой html с ssi include директивой). Но во-первых, хочется унификации (чтобы файлы отдавались только nginx, без зоопарка), если это возможно. Во-вторых хочется стандартных nginx 404 ошибок, если файла нет.
  • Вопрос задан
  • 2554 просмотра
Решения вопроса 1
Mandor
@Mandor
Заголовок "X-Accel-Redirect".
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы