Как использовать Apache в качестве обратного прокси — пошаговое руководство

Опубликовано: 2023-07-23

В этом руководстве вы найдете ответ на вопрос «Как использовать Apache в качестве обратного прокси» . Обратный прокси- сервер — это мощный инструмент, выступающий в качестве посредника между клиентами и внутренними серверами, такими как веб-серверы или серверы приложений. В отличие от традиционного прямого прокси-сервера, который находится между клиентами и Интернетом, обратный прокси-сервер находится между клиентами и одним или несколькими серверами.

Когда клиент делает запрос, обратный прокси-сервер перенаправляет этот запрос на соответствующий внутренний сервер от имени клиента. Затем он принимает ответ от внутреннего сервера и отправляет его обратно клиенту. Этот процесс эффективно скрывает личность внутреннего сервера и его внутреннюю структуру от клиентов.

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

Оглавление

Различие между прямым прокси и обратным прокси

  • Направление проксирования:
    • Прямой прокси: Обрабатывает запросы клиентов на доступ к ресурсам в Интернете. Он находится между клиентами и Интернетом, перенаправляя запросы клиентов на внешние серверы.
    • Обратный прокси: управляет запросами клиентов на доступ к ресурсам в сети организации. Он находится между клиентами и внутренними серверами, перенаправляя клиентские запросы на соответствующий внутренний сервер.
  • Перспектива клиента:
    • Прямой прокси: Клиенты обычно не знают о существовании прямого прокси. Запрос клиента отправляется на прокси-сервер, а целевой сервер получает запрос, как если бы он пришел непосредственно от клиента.
    • Обратный прокси: Клиенты отправляют запросы непосредственно обратному прокси-серверу, а не внутренним серверам. Затем обратный прокси-сервер перенаправляет запросы на внутренние серверы от имени клиентов.
  • Вариант использования:
    • Прямой прокси: часто используется для фильтрации содержимого, контроля доступа и анонимизации клиентских запросов путем сокрытия IP-адресов клиентов.
    • Обратный прокси : в основном используется для балансировки нагрузки, терминации SSL, кэширования и обеспечения безопасного шлюза для серверных служб.
  • Перспектива сервера:
    • Прямой прокси : сервер назначения видит запрос, исходящий от прямого прокси, а не от исходного клиента. Он не знает о фактическом клиенте, делающем запрос.
    • Обратный прокси-сервер: внутренние серверы видят обратный прокси-сервер в качестве клиента, выполняющего запрос. Они не знают о реальных клиентах, делающих первоначальный запрос.
  • Влияние на безопасность:
    • Forward Proxy: повышает конфиденциальность клиентов, маскируя IP-адреса клиентов. Он также может обеспечить дополнительные уровни безопасности, фильтруя вредоносное содержимое до того, как оно попадет к клиентам.
    • Обратный прокси: действует как щит для внутренних серверов, скрывая их внутреннюю структуру от внешних клиентов. Это помогает защитить от прямого воздействия Интернета и потенциальных атак.
  • Место развертывания:
    • Прямой прокси-сервер: развертывается в сети клиента или на клиентском устройстве для управления исходящим доступом в Интернет.
    • Обратный прокси-сервер: развертывается на границе сети организации, между Интернетом и внутренними серверами, управляя входящими клиентскими запросами.

Изучение различных вариантов использования обратных прокси

Обратные прокси предлагают широкий спектр вариантов использования, которые повышают производительность, безопасность и масштабируемость веб-приложений и сервисов.

Некоторые из ключевых вариантов использования обратных прокси включают в себя:

  • Балансировка нагрузки: обратные прокси-серверы могут распределять входящие клиентские запросы между несколькими внутренними серверами. Это помогает распределить нагрузку, предотвратить перегрузку сервера и обеспечить лучшее использование ресурсов. Балансировка нагрузки повышает общую производительность и скорость отклика приложения.
  • Прекращение SSL : Обратные прокси-серверы могут выполнять шифрование и дешифрование SSL/TLS от имени внутренних серверов. Это разгружает ресурсоемкую обработку SSL с внутренних серверов, уменьшая их рабочую нагрузку и упрощая управление сертификатами.
  • Кэширование: обратные прокси-серверы могут хранить часто запрашиваемые ресурсы в кэш-памяти. Когда клиенты запрашивают одни и те же ресурсы, обратный прокси-сервер напрямую обслуживает кэшированное содержимое, снижая нагрузку на сервер и улучшая время отклика.
  • Веб-ускорение. Кэшируя статический контент и сжимая данные, обратные прокси-серверы могут ускорить загрузку веб-страниц для клиентов, что повышает удобство работы пользователей.
  • Безопасность и защита от DDoS-атак. Обратные прокси-серверы действуют как защитный барьер между Интернетом и внутренними серверами. Они могут фильтровать и блокировать вредоносный трафик, защищать от распределенных атак типа «отказ в обслуживании» (DDoS) и скрывать реальный IP-адрес внутреннего сервера для предотвращения прямых атак.
  • Брандмауэр веб-приложений (WAF) . Обратные прокси-серверы могут действовать как WAF, проверяя входящий трафик на наличие потенциальных угроз, таких как SQL-инъекции, межсайтовые сценарии (XSS) и другие вредоносные действия. Они помогают защитить веб-приложения от распространенных уязвимостей.
  • Единая точка входа: обратные прокси-серверы предоставляют внешним клиентам единую точку входа для доступа к нескольким внутренним серверам. Это упрощает сетевую архитектуру и упрощает управление и масштабирование услуг.
  • Преобразование протокола: обратные прокси-серверы могут преобразовывать запросы с одного протокола на другой. Например, они могут преобразовывать HTTP-запросы в WebSocket или другие протоколы для конкретных приложений, облегчая связь между клиентами и серверами.
  • Сжатие и оптимизация контента: обратные прокси-серверы могут сжимать исходящий контент перед его отправкой клиентам, уменьшая размер передаваемых данных и улучшая время загрузки страницы.

Предварительные требования — настройка Apache в качестве обратного прокси-сервера

Установить побитовый SSH-клиент

  1. Найдите Bitwise SSH Client в своем браузере. Нажмите на ссылку https://www.bitvise.com/ssh-client-download и начните установку.

2. После установки программы установки откройте файл .exe на своем компьютере и завершите установку клиента Bitvise SSH.

Как зайти на сервер по SSH побитово?

  1. После завершения установки появится окно, показанное ниже. Введите свой хост, порт и имя пользователя, выберите пароль в раскрывающемся списке «Исходный метод» и нажмите «Войти». Появится всплывающее окно для ввода пароля. Введите свой SSH-пароль.

2. После входа в систему нажмите «Новая консоль терминала», и сразу появится терминал.

Шаг 1 — Установите Апач

Подключить сервер

Теперь, чтобы установить соединение с вашим сервером и обновить локальный индекс пакетов с помощью репозиториев APT, введите в терминале следующую команду и нажмите клавишу ввода:

 удачное обновление 

Для завершения обновления потребуется некоторое время, а пока дождитесь его завершения.

Как установить Apache на Ubuntu ?

  1. Установить Апач на Убунту

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

 apt install -y apache2

2. Проверьте версию Apache

После установки у вас есть возможность проверить версию Apache с помощью

 apache2 -version

3. Проверьте статус Apache

У вас также есть возможность проверить статус Apache2 с помощью приведенной ниже команды. Это поможет вам быстро определить, работает ли сервер и есть ли какие-либо проблемы, требующие внимания.

 systemctl status apache2

Как вы заметили, статус (END), отображаемый на вашем экране, является явным признаком успешной установки Apache2. Этот результат подтверждает, что процесс установки был завершен без каких-либо ошибок или проблем.

4. Включите Апач

Чтобы включить Apache2 в Ubuntu, используйте команду:

 systemctl enabled apache2

5. Запустите Апач

Если вы хотите перезапустить Apache2 в Ubuntu, используйте следующую команду в терминале:

 systemctl start apache2

Как установить Apache в Almalinux?

  1. Проверить доступные обновления

Чтобы установить Apache2 в Almalinux, проверьте наличие доступных обновлений, выполнив команду « dnf check-update» .

 dnf check-update

Если обновления найдены, перейдите к обновлению Linode с помощью «dnf update». Кроме того, если какие-либо компоненты ядра будут обновлены во время процесса, не забудьте перезагрузить Linode с помощью «перезагрузки» , чтобы применить изменения.

  1. Установить Апач

Теперь приступайте к установке необходимых пакетов Apache.

 dnf install httpd httpd-tools
  1. Запустить Apache

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

 systemctl start httpd
  1. Включить Apache

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

 systemctl enable httpd
  1. Проверить статус апача

Проверьте статус Apache с помощью команды «systemctl status» . Он должен отображаться как активный и работающий.

 systemctl status httpd

Шаг 2. Включите модули Apache для обратного прокси-сервера

Как включить его в Ubuntu?

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

  1. Определите необходимые модули

mod_proxy : Выступая в качестве основного прокси-модуля для Apache, mod_proxy эффективно обрабатывает соединения и перенаправления. Он позволяет Apache функционировать в качестве шлюза к базовым внутренним серверам, что делает его незаменимым модулем для всех настроек обратного прокси-сервера.

mod_proxy_http : этот модуль основан на mod_proxy и незаменим для поддержки запросов HTTP и HTTPS в среде прокси-сервера. Это позволяет Apache эффективно обрабатывать проксирование веб-приложений с использованием протоколов HTTP/HTTPS .

mod_ssl: Предоставляя основные функции, mod_ssl оснащает HTTP-сервер Apache поддержкой протоколов SSL v3 и TLS v1.x. Этот модуль имеет решающее значение для установления безопасных зашифрованных соединений, обеспечения целостности данных и повышения безопасности веб-сервера.

2. Включить модули

Теперь мы активируем эти модули с помощью команды a2enmod :

 sudo a2enmod proxy sudo a2enmod proxy_http sudo a2enmod ssl
  1. Перезапустите сервер Apache2.

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

 sudo systemctl restart apache2
  1. Проверить модули

Вы можете подтвердить активное состояние этих модулей, используя следующую команду:

 sudo apachectl -M

Шаг 3 — Настройка обратного прокси-сервера Apache

Теперь настройте обратный прокси-сервер Apache , чтобы он принимал запросы из Интернета и эффективно перенаправлял их на выбранный вами ресурс.

  1. Отключить Apache по умолчанию

Для начала вы отключите файл конфигурации виртуального хоста Apache по умолчанию. Этого можно добиться с помощью следующей команды:

 a2dissite 000-default.conf
  1. Создайте новый файл конфигурации

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

Чтобы создать новый файл конфигурации виртуального хоста, выполните следующие общие действия:

Выберите имя : выберите описательное имя для файла виртуального хоста, обычно заканчивающееся расширением «.conf». Например, «example.com.conf» или «cyberpanel.conf».

Перейдите в каталог конфигурации Apache: в большинстве дистрибутивов Linux файлы конфигурации Apache хранятся в каталоге «/etc/apache2/sites-available/» . Например:

 cd /etc/apache2/sites-available/

Создайте файл виртуального хоста : используйте текстовый редактор, например nano или vi, для создания нового файла конфигурации. Например:

 sudo nano example.com.conf

После ввода вышеуказанной команды появится следующий файл:

Настройте виртуальный хост : в файле используйте директиву <VirtualHost> , чтобы определить IP-адрес и порт для приема запросов для конкретного виртуального хоста. В качестве базового примера, позволяющего использовать все IP-адреса на HTTP- порте по умолчанию (порт 80) , используйте следующее:

 <VirtualHost *:80>    ServerName site1.com    ServerAlias www.site1.com     ServerAdmin [email protected]    ErrorLog ${APACHE_LOG_DIR}/error.log    CustomLog ${APACHE_LOG_DIR}/access.log combined    ProxyPass / http://127.0.0.1:8080/    ProxyPassReverse / http://127.0.0.1:8080/    ProxyRequests Off </VirtualHost>

Процесс настройки начинается с определения виртуального хоста с помощью команды <VirtualHost> , указывающей принятый IP-адрес и номер порта для Apache. В этом случае используется подстановочный знак *, что позволяет принимать все IP-адреса, а номер порта установлен на 80 , что представляет порт HTTP по умолчанию. После этого конфигурация дополнительно включает следующие элементы:

  • ServerName : Эта директива указывает доменное имя, связанное с сервером.
  • ServerAlias: с помощью ServerAlias ​​вы можете определить дополнительные имена, которые будет принимать сервер.
  • ServerAdmin : директива ServerAdmin устанавливает контактный адрес электронной почты, который сервер включает в сообщения об ошибках, возвращаемые клиентам.
  • ErrorLog : ErrorLog задает имя файла, в котором Apache сохраняет обнаруженные ошибки.
  • CustomLog: CustomLog задает имя файла, в котором Apache регистрирует клиентские запросы к серверу.
  • ProxyPass: ProxyPass сопоставляет удаленные серверы с пространством локального сервера и определяет целевой адрес для перенаправления трафика. Это позволяет Apache выступать в качестве обратного прокси-сервера, перенаправляя запросы на внутренние серверы и повышая производительность приложений и распределение нагрузки.
  • ProxyPassReverse: ProxyPassReverse жизненно важен для прокси-сервера, поскольку он перезаписывает исходное местоположение, местоположение контента и заголовки ответов HTTP URI внутреннего сервера с информацией о прокси-сервере. Это гарантирует, что обратный прокси-сервер правильно обрабатывает ответы, и предотвращает прямой доступ к внутренним серверам через Интернет.
  • ProxyRequests: ProxyRequests предотвращает использование HTTP-сервера Apache в качестве прямого прокси-сервера, повышая безопасность. Обычно при использовании ProxyPass его следует устанавливать в положение «выключено», чтобы избежать неправильного использования сервера в качестве открытого прокси-сервера и защитить от потенциальных угроз безопасности.

Сохранить и выйти : сохраните изменения и выйдите из текстового редактора.

Включить виртуальный хост : используйте команду a2ensite, чтобы включить новую конфигурацию виртуального хоста:

 sudo a2ensite example.com.conf

Перезагрузите Apache: чтобы применить изменения, перезагрузите Apache, чтобы активировать новый виртуальный хост:

 sudo systemctl reload apache2

После выполнения этих шагов новый виртуальный хост теперь активен и готов обслуживать назначенный ему веб-сайт или приложение. Важно отметить, что изменения вступят в силу только после включения виртуального хоста и перезагрузки Apache. Кроме того, вы можете поместить файлы вашего веб-сайта в каталог, указанный в директиве «DocumentRoot» , чтобы убедиться, что Apache правильно обслуживает контент для этого конкретного виртуального хоста.

Проверка конфигурации: убедитесь, что конфигурация обратного прокси-сервера работает должным образом. Посетите назначенное доменное имя (например, «reverse-proxy.example.com») в веб-браузере, и Apache должен правильно перенаправить запросы на внутренний сервер.

Имейте в виду, что вам может потребоваться настроить дополнительные параметры в зависимости от конкретных случаев использования, таких как обработка SSL-сертификатов, балансировка нагрузки или проксирование WebSocket . Регулярно контролируйте производительность и безопасность сервера, чтобы обеспечить бесперебойную работу.

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

В Cyberpanel интеграция Apache с OpenLiteSpeed ​​на серверной части предлагает лучшее из обоих миров, сочетая преимущества скорости OpenLiteSpeed ​​с многофункциональными возможностями Apache. Примечательно, что использование Apache в качестве обратного прокси-сервера не снижает производительность кеша ls; вы будете поддерживать тот же уровень производительности, что и при использовании только OpenLiteSpeed . В этой конфигурации OpenLiteSpeed ​​по-прежнему отвечает за передачу внешнего трафика на Apache, который обрабатывает запросы от серверной части. Кроме того, эта интеграция поддерживается как в операционных системах AlmaLinux , так и в Ubuntu . Следуя этой статье, пользователи могут в полной мере воспользоваться преимуществами, предлагаемыми сочетанием Apache и OpenLiteSpeed ​​в настройке обратного прокси-сервера.

Войдите в свою панель управления Cyberpanel.

Перейдите к варианту веб-сайта . Нажмите «Создать веб-сайт».

Введите ваше доменное имя, адрес электронной почты и версию PHP и выберите Apache в качестве обратного прокси. После ввода данных нажмите «Создать сайт». Это может занять некоторое время, а затем он будет создан

Этот веб-сайт будет работать в режиме обратного прокси-сервера Apache. На фронтенде будет работать Openlitespeed, а на бэкенде Apache. Таким образом, все ваши правила htaccess будут работать так же, как и раньше, независимо от того, используете ли вы Cpanel или любую другую панель управления.

Вы можете видеть, что сайт будет успешно создан.

Для этого сайта вы можете управлять конфигурацией Apache для этого сайта в нашем менеджере сайтов. Нажмите «Управление»

Как только вы окажетесь здесь, нажмите на Apache Manager

И даже вы можете переключиться на чистую Openlitespeed. Итак, допустим, вы хотите решить, что не хотите использовать Apache на сервере с этим веб-сайтом. Если вы хотите переключиться на чистую Openlitespeed , выберите версию PHP и нажмите «Переключиться на чистую Openlitespeed». Его также можно преобразовать для использования Apache, если он использует OpenLitespeed.

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

В наших конфигурациях Apache мы используем PHP-FPM, так что это конфигурации PHP-FPM, которые используете вы.

Для конфигураций Php Перейдите в PHP и нажмите «Редактировать конфигурации PHP». Если вы хотите отредактировать конфигурации PHP.

Если вы используете Apache, вам также необходимо отредактировать конфигурации Php, поэтому, если у вас установлен Apache, вы увидите этот URL.

По умолчанию вы сможете редактировать конфигурации для Litespeed Php. Если вы хотите отредактировать конфигурации Apache, также нажмите EDIT APACHE CONFIGURATIONS.

После нажатия на EDIT APACHE CONFIGURATIONS вы можете делать все, что угодно, с конфигурациями Litespeed, такими как post_max_size, upload_max_filesize, max_execution_time или что-то еще.

Убедитесь, что после редактирования конфигураций нажмите «Сохранить изменения».

Точно так же вы можете использовать расширенное редактирование.

Точно так же вы можете установить расширения PHP для Apache. Просто нажмите PHP-> Установить расширения

Если вы используете Apache, вам также необходимо УПРАВЛЯТЬ РАСШИРЕНИЯМИ APACHE , поэтому, если у вас установлен Apache, вы увидите этот URL-адрес.  

По умолчанию вы сможете установить расширения для Litespeed Php. Если вы хотите установить расширения для Apache, также нажмите «УПРАВЛЕНИЕ РАСШИРЕНИЯМИ APACHE».

Связанный контент

Вы также можете ознакомиться с нашим руководством по Apache и NGINX. Кто выигрывает с точки зрения производительности?