Apache2, установленный mod_proxy, использующий обратный прокси для более чем десятка сайтов, для них работает безупречно. Добавлена еще одна директива, но переход по этому URL-адресу приводит к ошибке 404.
Для этого вопроса сервер apache обозначается как web1
.
<Ifmodule proxy_module>
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
Приведенная ниже директива является примером того, что работает для всех (кроме одного) существующих случаев. Примечательно, что все существующие кейсы проходят запрос от /somedirectory
(на web1
) к http://somewebserver/somedirectory
.
ProxyPass /sample1 http://web2/sample1
ProxyPassReverse /sample1 http://web2/sample1
Следующая директива приводит к ошибке 404:
ProxyPass /sample3 http://web3
ProxyPassReverse /sample3 http://web3
Разница в том, что для /sample3
директива указывает на корень web3
а не каталог на web3
.
Также возникает вопрос, действительно ли 404 генерируется Apache на web1
или не. При установке LogLevel debug
на web1
то error_log
не содержит ошибок о ProxyPass
ProxyPassReverse
директивы. Аналогичным образом access_log
на web1
не содержит следов запроса /sample3
.
Вот так 404 выглядит в Firefox / Chrome:
Цель состоит в том, чтобы контент располагался в корне web3
появиться как web1/sample3
. По ряду причин перемещение содержимого из корня web3
к web3/sample3
это не вариант в настоящее время.
Есть ли в моей реализации явная ошибка? Если нет, что я могу предпринять, чтобы продолжить устранение неполадок? Заранее спасибо!