Комментарии 10
нам вполне подходит модуль ngx_http_try_files_module и его директива try_files
try_files описана в ngx_http_core_module
+1
Документация устарела. По факту сейчас (для версии 1.21):
Для старых версий действительно:
$ grep -rnF 'ngx_string("try_files")' ./nginx-1.21.0/src/
./nginx-1.21.0/src/http/modules/ngx_http_try_files_module.c:36: { ngx_string("try_files"),
Для старых версий действительно:
$ grep -rnF 'ngx_string("try_files")' ./nginx-1.11.5/src/
./nginx-1.11.5/src/http/ngx_http_core_module.c:637: { ngx_string("try_files"),
+7
От слова "update'ить" у меня глаз дёргается, есть такое слово "обновлять".
Извините, не сдержался...
-1
Я наверное чего-то не понимаю.. но по какой причине в локейшене pay возникает 404?
Откуда взялась установка что такого каталога не существует?
0
Встречный вопрос: «Почему он должен быть?»
Описание местоположения не подразумевает создание каталога или файла.
Возможно, этот момент стоило указать явно, но в данном случае отдача контента осуществляется директивой return, поэтому наличие каталога не требуется (а точнее, наоборот, вредит).
Описание местоположения не подразумевает создание каталога или файла.
Возможно, этот момент стоило указать явно, но в данном случае отдача контента осуществляется директивой return, поэтому наличие каталога не требуется (а точнее, наоборот, вредит).
0
Я все еще не понимаю.
Откуда смелое предположение что такого каталога не существует? Я возможно заблуждаюсь, но при наличии оного вся эта изящная схема работает несколько не так как предполагается?
Именно это мне и не нравится - использование сущности предназначенной несколько для иного.
+1
Откуда смелое предположение что такого каталога не существует?/blockquote>
Почему предположение? Мы намеренно создаём рабочую для нас конфигурацию с отдачей контента на этапе NGX_HTTP_SERVER_REWRITE_PHASE. Каталоги/файлы для этого нам не нужны. Задача ведь в том, чтобы отдать контент как можно раньше, не дергая fpm, базу и т.д.
Я возможно заблуждаюсь, но при наличии оного вся эта изящная схема работает несколько не так как предполагается?
При наличии каталога данная схема и не должна работать, но наличие каталога "/pay" (в соответствующем «root») говорит о том, что мы хотим формировать контент «задействовав» данную директорию. То есть речь идёт о фазе NGX_HTTP_CONTENT_PHASE, следовательно описанная проблема уже и так не возникает, так как мы перешагнули этап NGX_HTTP_PREACCESS_PHASE.
+1
Тут помимо сказанного есть ещё и второй момент.
Если не делать дальнейшую постобработку 503-х, то данное решение может быть даже во вред. По сути здесь мы (частично) заменили отдачу 402-х на отдачу 503-х.
При этом 402-е мы отдавали в четвертой фазе, а 503-е будем отдавать сначала поднявшись до 9-й, опустившись до 4-й и снова поднявшись до 6-й. Да, это микросекунды, но решение получается абсурдным если отдача 402-х не предполагает существенно большего контента чем 503-е или если дальше не делать анализ логов на наличие 503-х, с перманентной блокировкой ботов и т.п.
Если не делать дальнейшую постобработку 503-х, то данное решение может быть даже во вред. По сути здесь мы (частично) заменили отдачу 402-х на отдачу 503-х.
При этом 402-е мы отдавали в четвертой фазе, а 503-е будем отдавать сначала поднявшись до 9-й, опустившись до 4-й и снова поднявшись до 6-й. Да, это микросекунды, но решение получается абсурдным если отдача 402-х не предполагает существенно большего контента чем 503-е или если дальше не делать анализ логов на наличие 503-х, с перманентной блокировкой ботов и т.п.
+1
del
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Nginx. Фазы обработки запроса. Практика