Я пытаюсь настроить обратный прокси с 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.