Назад | Перейти на главную страницу

Apache ProxyPass исключить. Не использовать прокси 404 адреса

Я пытаюсь настроить обратный прокси с Apache, и по большей части он хорошо работает с ProxyPass. Я хотел бы исключить один из каталогов, который, как я понимаю, могу сделать с ! индикатор, задокументированный здесь: http://httpd.apache.org/docs/current/mod/mod_proxy.html#proxypassreverse

Так что я:

ProxyPass /examples !
ProxyPass / http://localhost:3000/

Это нормально, если я перейду к файлу в /examples который существует, но если я попал по адресу, который приводит к ошибке 404, запрос будет проксирован, а не просто возвращен 404.

Я бы предпочел вернуть 404. Я ничего не видел об этом в документации - кто-нибудь знает, как это можно сделать? Большое спасибо!

Это с Apache v2.4.6.

В зависимости от вашей настройки Apache документ об ошибке по умолчанию был определен за пределами местоположения / examples, исключенного из вашего ProxyPass. В моем RHEL 6 по умолчанию:

 Alias /error/ "/var/www/error/"
 ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var

Это приведет к тому, что любое сообщение 404 будет перенаправлено на /error/HTTP_NOT_FOUND.html.[en | es | de | fr ] зависимости и принятия языковых настроек браузера, генерирующего ошибку 404.

В вашем случае это означает запрос на /examples/no-such-file будет по-прежнему перенаправлен на http://localhost:3000/.

Во-вторых, вы можете захотеть исследовать значение ProxyPassReverse директива, которую вы пропустили в своем образце config.