Как настроить Apache Reverse Proxy для Node.js

·2 мин. чтения

Использование Reverse Proxy с Node.js может значительно улучшить управление и безопасность вашего веб-приложения, особенно в случаях, когда необходимо обрабатывать большой объем трафика или обеспечивать высокую доступность.

Reverse Proxy, такие как Nginx или Apache обеспечивают несколько преимуществ:

  • Балансировка нагрузки
  • Управление кэшированием
  • SSL
  • Защита от атак

Альтернативой может служить менеджер процессов PM2, как использовать PM2 для Node.js описано в этой статье.

В качестве примера используется VPS-хостинг с предустановленной Ubuntu 20.04.3 LTS. Имейте в виду, что принципиальной разницы между несколькими последними версиями Ubuntu не должно быть.

Чтобы приступить к настройке Reverse Proxy, на вашей ОС должен быть предварительно установлен Apache 2. Убедимся, что он установлен выполнив команду:

apache2 -v

Server version: Apache/2.4.41 (Ubuntu)

Устанавливаем модули proxy и proxy_http:

sudo a2enmod proxy
sudo a2enmod proxy_http

Перезагружаем Apache после установки:

sudo service apache2 restart

Далее нам понадобится отредактировать файл конфигурации /etc/apache2/sites-available/example.com.conf. Внимание! Путь к этому файлу может отличаться для вашей версии или персональной конфигурации Apache.

Откроем этот файл:

sudo nano /etc/apache2/sites-available/example.com.conf

По умолчанию файл выглядит так:

<VirtualHost *:80>
ServerName example.com
  <Directory "/var/www/example.com/html">
  AllowOverride All
  </Directory>
</VirtualHost>

Изменим файл следующим образом:

<VirtualHost *:80>
ServerName example.com

  ProxyRequests Off
  ProxyPreserveHost On
  ProxyVia Full
  <Proxy *>
    Require all granted
  </Proxy>

  <Location /nodejs>
    ProxyPass http://127.0.0.1:8080
    ProxyPassReverse http://127.0.0.1:8080
  </Location>

  <Directory "/var/www/example.com/html">
  AllowOverride All
  </Directory>
</VirtualHost>

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

sudo services apache2 restart

Возьмите простейшее приложение (веб сервер) на Node.js из этой статьи и разместите его по следующему пути:

/var/www/html/nodejs/index.js

Запустите приложение используя команду node /var/www/html/nodejs/index.js или воспользуйтесь запуском через PM2.

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

Hello world!

Похожие публикации

Тачку на прокачку - GTA 3
Как так получилось, спросите вы? А вот не знаю, GTA Connected умеет 😄... Читать далее
·1 мин. чтения
Исполнилось 20 лет игре Герои Меча и Магии 3
Ровно двадцать лет назад, 3 марта 1999 года, в продаже появилась третья часть... Читать далее
·2 мин. чтения
Описание фаилов клиента Lineage 2
Основные папки SystemГлавная папка. Все настройки по отображению, движению,... Читать далее
·5 мин. чтения

© geekrainian.com