Как выявить 404 ошибку в nginx на 80 порту и перенаправить запрос на 8080 порт, который слушает apache сервер?
Ребят, смотрите ситуация без nginx:
1. Клиент запросил файл, допустим image.jpg, которого физически не существует, apache обрабатывает запрос, поняв что файла физически нет, перенаправляет запрос на сторону php, который в свою очередь создаёт этот файл.
2. Клиент снова запросил файл, image.jpg который физически существует (см. п. 1), следовательно сразу отдаётся клиенту.
А теперь смотрите ситуацию с nginx:
1. Клиент запросил файл, допустим image.jpg, которого физически не существует, nginx оповещает клиента о 404 ошибке.
Собственно вопрос, как реализовать правильную схему, в настройках nginx такого рода:
1. Клиент запросил несуществующий файл, nginx обрабатывает запрос, и перенаправляет его на apache (8080 порт).
2. Apache обработав запрос, действует по схеме, описанной в самом начале (п.п. 1,2 в самом начале).
Что посоветуете? Спасибо.
P.S. Если одной строкой: Как выявить 404 ошибку в nginx на 80 порту и перенаправить запрос на 8080 порт, который слушает apache сервер.
@Fesor У меня с этой директивой проблемы возникали, особенно когда речь заходит о динамических поддоменах, котые могут лежат в разных директориях, тут вообще у меня связки не вышло... Подожду мб что поинтересней предложат. Я так понимая монстра apache обезопасить от примитивного dos'а нельзя?
А какого рода проблемы были?
p.s. я вообще не вижу смысла ставить apache... только если нужен какой-то специфичный модуль, аналога которого нету под nginx.
@fenric Плюс с nginx'ом опыту работы очень мало... Ставлю его обычно на серверах, как способ ограничить количество запросов, и снять нагрузку с apache...
ну я вам так скажу, nginx + fpm как по мне настраивать проще чем apache... Я в свое время перешел на nginx потому что апач люто тек по памяти, а сейчас просто привык.
Соответственно 404.php - скрипт, создающий ваш файл. В данном случае он же может отдать файл клиенту. Тогда разницы между первым запросом и остальными внешне не будет.
@xaker1 Такое я и сам написать могу, я не знаю что окажется динамическим понимаете? Это может быть вообще js файл, css, изображение, точек генерации статики может быть масса. Мне нужна схема которую я описал.
Если таких запросов не много, то можно включить кеширование 200 ответов в nginx, а обработку запросов повесить на PHP. Но такой метод может "скушать" ОЗУ.