Как настроить Apache в качестве обратного прокси

4 giu 2024 3 min di lettura
Как настроить Apache в качестве обратного прокси
Indice dei contenuti

Введение

Настройка Apache в качестве обратного прокси-сервера означает настройку Apache для прослушивания и направления веб-трафика на серверы или внутренние службы. Это может помочь вам управлять и балансировать нагрузку на ваши серверы, повышать безопасность и повышать эффективность ваших веб-сервисов. Вы также можете настроить его для прослушивания запросов на стандартных портах HTTP и HTTPS и перенаправления их на серверные службы, работающие на разных портах.

В этом руководстве мы покажем вам, как настроить Apache в качестве обратного прокси-сервера, выполнив простые шаги. Даже если вы новичок в этой области, не волнуйтесь — мы упростим понимание и отслеживание. В конечном итоге у вас будет работающий обратный прокси-сервер, который поможет вашим веб-приложениям работать без сбоев.

Сетевой сценарий

Представьте, что у вас установлен Apache на сервере, к которому каждый может получить доступ из Интернета. Apache прослушивает трафик через обычные порты HTTP и HTTPS. У вас также есть несколько приложений:

  • Приложение работает на том же сервере, что и Apache, но использует другой порт, например 3000.
  • Другие приложения работают на другом сервере в той же сети, но этот сервер недоступен из Интернета.

Итак, приступим к настройке:

Шаг 1. Настройка прокси-модуля Apache

По умолчанию этот модуль включен в Apache для пользователей, которые установили его с помощью пакетов rpm. Пользователи Debian должны включать модули вручную.

Системы на базе RedHat: отредактируйте файл конфигурации прокси-сервера /etc/httpd/conf.modules.d/00-proxy.conf, раскомментируйте следующие записи. Если они недоступны, добавьте их:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

Системы на базе Debian: используйте следующую команду, чтобы включить модуль прокси с Apache.

sudo a2enmod proxy proxy_http

После включения модулей вам потребуется перезапустить службы Apache, чтобы изменения немедленно вступили в силу.

Шаг 2. Настройте виртуальный хост Apache.

Теперь он начнет работать с виртуальным хостом. Мы создаем три виртуальных хоста, как показано ниже. Вы создаете только то, что необходимо, с необходимыми модификациями. Отредактируйте основной файл конфигурации Apache и начните настройку.

Обратный прокси для локального приложения

Чтобы перенаправить все запросы, отправленные на www.yourdomain.com, серверному приложению, работающему локально на порту 3000:

<VirtualHost *:80>
 ServerName www.yourdomain.com

 ProxyPreserveHost On

 # Reverse proxy for the application running on port 3000 on the same server
 ProxyPass /http://localhost:3000/ProxyPassReverse /http://localhost:3000/# Change log as per server
 # ErrorLog ${APACHE_LOG_DIR}/error.log
 # CustomLog ${APACHE_LOG_DIR}/access.log combined
 </VirtualHost>

Обратный прокси-сервер на локальный со вторичным URL-адресом

Чтобы переслать URL-адрес определенного подкаталога серверному приложению. Например, чтобы перенаправить все запросы, отправленные на www.yourdomain.com/api, серверному приложению, работающему локально на порту 3000:

<VirtualHost *:80>
 ServerName www.yourdomain.com

 ProxyPreserveHost On

 # Reverse proxy for the application running on port 3000 on the same server
 ProxyPass /api http://localhost:3000/ProxyPassReverse /api http://localhost:3000/# Change log as per server
 # ErrorLog ${APACHE_LOG_DIR}/error.log
 # CustomLog ${APACHE_LOG_DIR}/access.log combined
 </VirtualHost>

Обратный прокси-сервер для серверного хост-приложения

Чтобы перенаправить все запросы, отправленные на www.yourdomain.com, серверному приложению, работающему на другом сервере (IP 192.168.1.100) на порту 3000:

<VirtualHost *:80>
 ServerName www.yourdomain.com

 ProxyPreserveHost On

 # Reverse proxy for the application running on a different server
 ProxyPass /http://192.168.1.100:3000/ProxyPassReverse /http://192.168.1.100:3000/# Change log as per server
 # ErrorLog ${APACHE_LOG_DIR}/error.log
 # CustomLog ${APACHE_LOG_DIR}/access.log combined
 </VirtualHost>

Обратный прокси для нескольких серверных приложений

Чтобы перенаправить запросы к различным серверным приложениям по URL-адресу, например, перенаправьте запросы на www.yourdomain.com/app1 приложению на порту 3000 и перенаправьте запросы на www.yourdomain.com/app2 приложению на порту 5000 на другом сервер (IP 192.168.1.100):

<VirtualHost *:80>
 ServerName www.yourdomain.com

 ProxyPreserveHost On

 # Reverse proxy for different applications
 ProxyPass /app1 http://localhost:3000/ProxyPassReverse /app1 http://localhost:3000/ProxyPass /app2 http://192.168.1.100:5000/ProxyPassReverse /app2 http://192.168.1.100:5000/# Change log as per server
 # ErrorLog ${APACHE_LOG_DIR}/error.log
 # CustomLog ${APACHE_LOG_DIR}/access.log combined
 </VirtualHost>

Обратный прокси для применения на разных портах

Чтобы перенаправить запросы к разным серверным приложениям на одном сервере, но на разные порты, например, перенаправьте запросы на www.yourdomain.com/app1 приложению на порту 3000 и перенаправьте запросы на www.yourdomain.com/app2 приложению на порт 5000:

<VirtualHost *:80>
 ServerName www.yourdomain.com

 ProxyPreserveHost On

 # Reverse proxy for different applications
 ProxyPass /app1 http://localhost:3000/ProxyPassReverse /app1 http://localhost:3000/ProxyPass /app2 http://localhost:5000/ProxyPassReverse /app2 http://localhost:5000/# Change log as per server
 # ErrorLog ${APACHE_LOG_DIR}/error.log
 # CustomLog ${APACHE_LOG_DIR}/access.log combined
 </VirtualHost>

Шаг 3. Перезапустите Apache, чтобы применить изменения.

После успешного создания виртуального хоста Apache вам необходимо перезапустить службу Apache. Используйте следующие команды, чтобы перезапустить службу Apache в зависимости от вашей операционной системы.

Системы на базе Дебеда:

sudo systemctl restart httpd

Системы на базе RedHat:

sudo systemctl restart apache2

Заключение

Я надеюсь, что это руководство поможет вам понять, как использовать обратный прокси-сервер в Apache. Настройка 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.