Если вы обращаетесь к файлу через обратный прокси-сервер, а файл не найден (возвращает 404), может ли apache2 / mod_proxy автоматически проверить наличие файла на другом сервере, выполнив другой обратный прокси-сервер?
рабочий процесс выглядит так: 1. запрашивает файл на сервере, выполняющем обратный прокси 2. сервер ищет файл на сервере A 3. файл не найден на сервере A, поэтому он проверяет сервер B 4. файл был найден на сервере B, так что он возвращается.
Я уже знаю, что другие предложения могут это сделать, но мне было любопытно, может ли mod_proxy это сделать?
Способ есть, но без использования 404, и, честно говоря, это плохая идея.
Сначала установите maxattempts на число больше 1. Установите отсутствие отказа к Выключено.
Затем в серверной части, которая не удерживает нужный вам объект, вы возвращаете 503, когда хотите, чтобы он попробовал следующий. (503 = HTTP_SERVICE_UNAVAILABLE)
Однако в реальной жизни это не сработает. Apache не имеет возможности угадать, что является настоящей ошибкой 503, а что - ошибкой «попробуйте другой сервер». Другими словами, это нарушит реальное обнаружение 404. Невозможно выдать ошибку 404 «страница не найдена», так как вы всегда будете возвращать пользователям ошибку «служба недоступна» после того, как apache откажется от проверки всех серверов.
Кроме того, то, что вы пытаетесь здесь сделать, - не лучшая идея, ИМХО. Вы должны настроить правильные сопоставления на своем прокси-сервере Apache и назначить серверы на основе URL-адресов ваших запросов.
http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#forwardreverse