Модуль mod_proxy в Apache позволяет перенаправлять запросы на другой сервер с помощью директив ProxyPass и ProxyPassReverse.
Однако в некоторых случаях вы можете захотеть исключить определенные URL из проксирования.
В этом руководстве мы покажем вам, как исключить URL из ProxyPass в Apache.
Первый шаг – определить URL, который вы хотите исключить.
Для этого руководства предположим, что мы хотим исключить URL “/static” из проксирования.
Исключение URL в Apache c ProxyPass
Apache proxy отправляет запросы слушателям бэкенда.
В некоторых случаях вам может понадобиться исключить URL для проксирования.
Например, у вас есть статическое содержимое, которое хранится в каталоге “/var/www/html/static”.
Приложение обслуживает статическое содержимое, URL-адреса которого начинаются с “/static”.
Вы хотите, чтобы все URL, которые начинаются с “/static”, обслуживались непосредственно из каталога без проксирования.
Вы можете сделать это, добавив следующую конфигурацию перед основными настройками ProxyPass.
ProxyPass /static ! Alias "/static" "/var/www/html/static"
Символы ! указывают apache, что не следует проксировать запросы, начинающиеся с подкаталога “/static”.
Алиас сопоставляет URL с каталогом “/var/www/html/static”.
Убедитесь, что вышеуказанная конфигурация добавлена до конфигурации ProxyPass.
Пример виртуального хоста выглядит следующим образом:
<VirtualHost *:80> ServerName example.com ProxyPass /static ! Alias "/static" "/var/www/html/static" <Directory "/var/www/html"> Require all granted </Directory> ProxyPreserveHost On ProxyPass / http://127.0.0.1:8080/ ProxyPassReverse / http://127.0.0.1:8080/ </VirtualHost>
Внесите необходимые изменения в конфигурацию виртуального хоста Apache и перезапустите службу Apache.
Чтобы проверить конфигурацию, зайдите на URL, который вы исключили из прокси, в данном случае это будет “/static”.
Если конфигурация верна, вы должны увидеть содержимое вашего сайта, а не прокси на внутреннем сервере.
Заключение
В заключение следует отметить, что модуль mod_proxy Apache также предоставляет возможность выполнять URL, которые будут проксироваться.
Это может быть полезно для обслуживания статического контента непосредственно с веб-сервера вместо проксирования их на внутренний сервер.
В этом руководстве мы предоставили вам инструкции с примером, как исключить URL из ProxyPass в веб-сервере Apache.
Не забудьте протестировать свою конфигурацию после внесения изменений, чтобы убедиться, что она работает так, как ожидалось.
см. также:
- 🌐 Настройка заголовков безопасности HTTP на сервере Nginx / Apache
- 🌐 Заголовки безопасности HTTP – полное руководство
- 🌐 Расшифровка зашифрованного TLS HTTP-трафика для отладки
- 🐳 Установка ModSecurity 3 с Apache в контейнере Docker
- 🔐 Что такое файл .pem и как его использовать?
- 🐧 Как определить дату последней загрузки определенной версии ядра Linux