Исключение URL-адресов из ProxyPass в Apache

14 feb 2023 2 min di lettura
Исключение URL-адресов из ProxyPass в Apache
Indice dei contenuti

Введение

Модуль Apache mod_proxy позволяет пересылать запросы на другой сервер с помощью директив ProxyPass и ProxyPassReverse. Однако в некоторых случаях может потребоваться исключить определенные URL-адреса из прокси-сервера. В этом руководстве я покажу вам, как исключить URL-адрес из ProxyPass в Apache.

Apache mod_proxy — это дополнительный модуль для HTTP-сервера Apache, который реализует функции прокси, шлюза или кэширования для сервера. Модуль предоставляет возможность прокси для таких протоколов, как AJP13, FTP, CONNECT (для SSL), HTTP/0.9, HTTP/1.0 и HTTP/1.1.]

Модуль Apache mod_proxy обеспечивает базовые функции прокси, а модуль mod_proxy_balancer и один или несколько модулей балансировки, если требуется балансировка нагрузки. Кроме того, расширенная функциональность обеспечивается другими модулями, включая кэширование, предоставляемое модулем mod_cache и связанными модулями. Модуль mod_proxy_http, для которого требуется служба модуля mod_proxy, предоставляет функциональные возможности, используемые для прокси-запросов HTTP и HTTPS, с поддержкой HTTP/0.9, HTTP/1.0 и HTTP/1.1. Однако он не предоставляет никаких возможностей кэширования.

Первым шагом является определение URL-адреса, который вы хотите исключить из переадресации через прокси-сервер. Для этого руководства предположим, что мы хотим исключить URL-адрес «/static» из проксирования.

Исключить URL-адреса в Apache 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». Если конфигурация правильная, вы должны увидеть содержимое своего веб-сайта, а не перенаправленное на внутренний сервер.

Заключение

Суть в том, что модуль Apache mod_proxy также предоставляет возможность запускать перенаправленные URL-адреса. Это может быть полезно для обслуживания статического контента непосредственно с веб-сервера вместо проксирования его на внутренний сервер. В этом руководстве мы дали вам инструкции с примером, чтобы исключить URL-адреса из ProxyPass на веб-сервере Apache. Не забудьте проверить свою конфигурацию после внесения любых изменений, чтобы убедиться, что она работает должным образом.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.