{G}eekrainian

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

3 мин. чтения
Программирование

Использование 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)

Настройка Apache

Устанавливаем модули 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!

Эта история оказалось полезной? 🤔

Поддержите меня чашечкой кофе и станьте спонсором нового контента!

BuyMeACoffee

Ko-Fi

Поделиться

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

Почему не стоит использовать React.FC

Описание проблем применения React.FC с примерами кода и миграция проекта с версии React.FC 17... Читать далее

© geekrainian.com

  • Русский
  • English
RSSКарта сайта