Вернуть старое меню
Бесплатно, 24/7 8 (800) 775-97-42
Country flag RU
Country flag EN
Country flag DE
₽ RUB
$ USD
€ EUR
Выбрать VPS
Маркетплейс
О нас
Сообщество
Поддержка
Баланс:
Бонусы:
Войти
Выйти
Зарегистрироваться
ГОТОВЫЕ ТАРИФЫ
Ref icon
VPS Старт От 139 рублей/мес
Ref icon
VPS Мощные Мощные серверы по выгодной цене
Ref icon
VPS Windows Удобные конфигурации для работы с ОС Windows
Ref icon
VPS Быстрые NVMe Максимальная скорость с промышленными NVMe дисками
Ref icon
VPS Plesk Настройте сервер под себя в несколько кликов
Ref icon
VPS с 1C для бухгалтеров Оптимизированные под 1C серверы
Ref icon
VPS для трейдинга Установите торговые терминалы за 1 клик
Ref icon
VPS для геймеров Мощное железо для мощных рейдов
Ref icon
VPS для бизнеса Настроить любой параметр сервера
Ref icon
Посмотреть все тарифы
Card icon Своя конфигурация
Удобный конфигуратор позволит вам настроить любой параметр сервера, а мы предложим за него лучшую цену.
Собрать
Card icon Бесплатный тест на 3 дня
Только для новых пользователей. Возьмите на тест любой сервер до 3000 рублей, проверьте приложения и программы, установив их на VPS.
Попробовать
АККАУНТ Мои серверы Домены Заказать Настройки Партнеру
КЛИЕНТАМ
О компании Входим в топ-15 IAAS в России
Дата-центры 17 ЦОД уровня Tier III в 7 странах
Аттестация по ФСТЭК Поможем с гос. лицензированием
Бонусная программа Накопительная система лояльности
Card icon Пинг до дата-центров
Измерьте ping от вас до всех наших дата-центров. Мы подберем тот, который подходит для вас идеально.
Измерить
Card icon Бесплатный тест на 3 дня
Только для новых пользователей. Возьмите на тест любой сервер до 3000 рублей, проверьте приложения и программы, установив их на VPS.
Попробовать
АККАУНТ Мои серверы Домены Заказать Настройки Партнеру
КЛИЕНТАМ
Справочник Пошаговые инструкции, как настроить VPS
FAQ Частые вопросы о настройке VPS и сервисе
Новости и события Новости сервиса, информация о событиях и спецпроектах компании
Card icon Соцсети
Наш блог на Хабре, выступления, новости компании.
Присоединиться
Card icon Бесплатный тест на 3 дня
Только для новых пользователей. Возьмите на тест любой сервер до 3000 рублей, проверьте приложения и программы, установив их на VPS.
Попробовать
АККАУНТ Мои серверы Домены Заказать Настройки Партнеру
Бесплатно, 24/7 8 (800) 775-97-42
Mobile menu button
Выбрать VPS
Mobile card icon
Своя конфигурация Удобный конфигуратор позволит вам настроить любой параметр сервера, а мы предложим за него лучшую цену.
Собрать
Ref icon
VPS Старт От 139 рублей/мес
Ref icon
VPS Мощные Мощные серверы по выгодной цене
Ref icon
VPS Windows Удобные конфигурации для работы с ОС Windows
Ref icon
VPS Быстрые NVMe Максимальная скорость с промышленными NVMe дисками
Ref icon
VPS Plesk Настройте сервер под себя в несколько кликов
Ref icon
VPS с 1C для бухгалтеров Оптимизированные под 1C серверы
Ref icon
VPS для трейдинга Установите торговые терминалы за 1 клик
Ref icon
VPS для геймеров Мощное железо для мощных рейдов
Ref icon
VPS для бизнеса Настроить любой параметр сервера
Ref icon
Посмотреть все тарифы
Ref icon
Бесплатный тест на 3 дня
Маркетплейс
О нас
Mobile card icon
Пинг до дата-центров Измерьте ping от вас до всех наших дата-центров. Мы подберем тот, который подходит для вас идеально.
Измерить
О компании Входим в топ-15 IAAS в России
Дата-центры 17 ЦОД уровня Tier III в 7 странах
Аттестация по ФСТЭК Накопительная система лояльности
Бонусная программа Накопительная система лояльности
Сообщество
Mobile card icon
Соцсети Наш блог на Хабре, выступления, новости компании.
Присоединиться
Справочник Пошаговые инструкции, как настроить VPS
FAQ Частые вопросы о настройке VPS и сервисе
Новости и события Новости сервиса, информация о событиях и спецпроектах компании
Поддержка
Country flag RU
Country flag EN
Country flag DE
₽ RUB
$ USD
€ EUR
Войти
Зарегистрироваться
Личный кабинет
Мои серверы
Домены
Баланс: Бонусы:
Заказать
Настройки
Партнеру
Выйти
Мои серверы
Домены
Заказать
Настройки
Партнеру
  • ВЫБРАТЬ VPS
  • ДАТА-ЦЕНТРЫ
  • СПРАВОЧНИК
  • ПОДДЕРЖКА
  • ВОЙТИ
RuVDS/Справочник/Развертывание ПО на VPS сервере/Как настроить Angie в качестве обратного прокси-сервера

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

29 просмотров 0 2025-06-04

Angie – не просто веб-сервер, но многофункциональный сетевой фронтенд, который способен выступать в самых различных ролях. Например, Angie может работать как обратный прокси-сервер, что является одной из его важных функций, унаследованных от Nginx, на базе которого он и был создан. В данном руководстве рассмотрим, как настроить Angie в качестве обратного прокси-сервера для тестового веб-приложения.

Как это работает?

При работе в качестве обратного прокси Angie фактически становится посредником между внешними клиентами и внутренними сервисами. Клиенты отправляют свои HTTP или HTTPS-запросы на публичный адрес сервера, и при этом не знают, что на самом деле получают доступ к другому приложению, которое работает на порту, отличном от 80 или 443. Angie принимает эти запросы, анализирует их, после чего в зависимости от конфигурации перенаправляет на нужный внутренний сервер или приложение.

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

Далее разберём, как можно защитить веб-приложение при помощи Angie, настроенного как обратный прокси. В качестве примера мы создадим приложение на Node.js LTS-версии 22.16.0, актуальной на момент написания статьи.

Версия Node.js - Angie в качестве обратного прокси

Платформой для нашего приложения послужит виртуальный выделенный сервер, работающий под управлением Ubuntu 24.04.

Запуск приложения

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

$ nano app.js

В нашем примере это будет простейшая веб-страница. Для её запуска мы используем следующий код:

const http = require('http');

const server = http.createServer((req, res) => {
  console.log(`Запрос: ${req.method} ${req.url}`);

  res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
  res.end(`
    <!DOCTYPE html>
    <html lang="ru">
    <head>
      <meta charset="UTF-8">
      <title>Веб-страница на Node.js</title>
    </head>
    <body>
      <h1>Ваша веб-страница, созданная на Node.js.</h1>
    </body>
    </html>
  `);
});

const PORT = 3000;
server.listen(PORT, () => {
  console.log(`Приложение работает на http://localhost:${PORT}`);
});

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

$ sudo ufw allow 3000

После чего запустите приложение командой:

$ node app.js

Затем на своём локальном компьютере откройте браузер и проверьте доступность веб-страницы, перейдя по IP-адресу вашего сервера или доменному имени вашего сайта, если его A-запись указывает на IP-адрес виртуальной машины. При этом не забудьте, что в ссылке на веб-страницу нужно указать номер порта, на котором работает ваше приложение. В нашем примере созданное приложение доступно по адресу your-site-name.ru:3000.

Доступ к веб-странице по порту 3000 - Angie в качестве обратного прокси

Для того, чтобы прервать работу приложения, в командной нажмите Ctrl C.

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

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

$ sudo mkdir -p /etc/angie/sites-available
$ sudo mkdir -p /etc/angie/sites-enabled

Затем откройте основной конфигурационный файл Angie:

$ sudo nano /etc/angie/angie.conf

И в секцию http добавьте директиву include, указывающую на каталог, в котором будут находиться конфигурационные файлы Angie:

include /etc/angie/sites-enabled/*;

Затем создайте файл конфигурации виртуального хоста для домена, по имени которого будет открываться веб-страница. В нашем примере это – your-site-name.ru.

$ sudo nano /etc/angie/sites-available/your-site-name.ru

Добавьте в данный файл следующие строки:

server {
    listen 80;
    server_name your-site-name.ru www.your-site-name.ru;

    location / {
        proxy_pass http://127.0.0.1:3000;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Обратите внимание на следующие параметры конфигурации виртуального хоста:

  • listen 80; – указывает на то, что Angie будет слушать HTTP-трафик на порту 80 – стандартном порту для протокола HTTP;
  • server_name your-site-name.ru www.your-site-name.ru; – определяет доменные имена, на которые будет срабатывать данная конфигурация;
  • proxy_pass http://127.0.0.1:3000; – перенаправляет запросы от клиентов на локальное приложение, работающее на порту 3000;
  • директивы proxy_set_header Upgrade $http_upgrade; и proxy_set_header Connection 'upgrade'; требуются для корректной поддержки WebSocket – протокола, который используется для живого обновления интерфейса.

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

$ sudo ln -s /etc/angie/sites-available/your-site-name.ru /etc/angie/sites-enabled

Чтобы убедиться в том, что после внесённых изменений Angie работает без ошибок, проверьте его синтаксис на корректность:

$ sudo angie -t

Вывод команды должен содержать сообщение об успешном прохождении проверки.

Вывод проверки корректности синтаксиса Angie

И, наконец, для применения изменений перезапустите конфигурацию Angie:

$ sudo systemctl reload angie

Чтобы проверить, что доступ к веб-странице обеспечивается с использованием Angie, запустите приложение:

$ node app.js

И в браузере перейдите по доменному имени сайта.

Доступ к веб-странице по протоколу HTTP

Для остановки работы приложения в терминале используйте комбинацию клавиш Ctrl C.

Запуск приложения как службы

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

Для этого создайте юнит-файл systemd для новой службы. В нашем примере данный файл будет называться yourapp.service. Соответственно, создаваемая служба также будет называться yourapp.

$ sudo nano /etc/systemd/system/yourapp.service

Содержимое юнит-файла в нашем случае имеет следующий вид:

[Unit]
Description=Your Node.js App
After=network.target

[Service]
ExecStart=/home/your-user/.nvm/versions/node/v22.16.0/bin/node /home/your-user/app.js
WorkingDirectory=/home/your-user
Restart=always
User=your-user
Environment=NODE_ENV=production
Environment=PORT=3000

[Install]
WantedBy=multi-user.target

В данном случае, ExecStart=/home/your-user/.nvm/versions/node/v22.16.0/bin/node /home/your-user/app.js – команда, которая запускает приложение. Обратите внимание, что команда содержит полный путь к исполняемому файлу Node.js и полный путь к файлу приложения. Чтобы узнать, где в системе расположен исполняемый файл Node.js, выполните команду:

$ which node

Её вывод и будет содержать полный путь до исполняемого файла.

Полный путь до исполняемого файла Node.js

Также юнит-файл должен содержать:

  • WorkingDirectory=/home/your-user – рабочий каталог приложения;
  • User=your-user – имя пользователя, под именем которого будет запускаться приложение;
  • Environment – директиву, которая добавляет переменную окружения.

В нашем примере в юнит-файле присутствуют две переменных окружения:

  • NODE_ENV=production – стандартная переменная окружения для Node.js, которая устанавливает режим production;
  • PORT=3000 – переменная окружения, которая указывает приложению, на каком порту оно должно слушать входящие подключения.

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

$ sudo systemctl daemon-reload

Затем запустите новую службу:

$ sudo systemctl start yourapp

И установите её в автозагрузку:

$ sudo systemctl enable yourapp

Чтобы убедиться в успешном запуске службы, выведите на экран её состояние:

$ systemctl status yourapp

Вывод команды не должен содержать сообщений об ошибках.

Вывод состояния созданной службы - Angie в качестве обратного прокси

Теперь приложение, созданное на Node.js, будет выводить веб-страницу, доступ к которой, в свою очередь, будет обеспечивать обратный прокси-сервер Angie. Убедиться в этом можно, перейдя в браузере по имени сайта, который в нашем примере открывается по ссылке http://your-site-name.ru.

В данный момент веб-страница доступна как по протоколу HTTP, так и по порту 3000. Данный порт использовался нами для проверки работоспособности приложения. Чтобы закрыть доступ к серверу через порт 3000, удалите соответствующее разрешающее правило в брандмауэре UFW:

$ sudo ufw delete allow 3000

То, что доступ к работающей на Node.js веб-странице обеспечивает именно Angie, видно, например, в DevTools браузера Firefox.

Анализ веб-страницы при помощи DevTools в браузере Firefox

Статья полезна?

Да  Нет
Похожие статьи
  • Как установить VictoriaMetrics на Ubuntu 24.04
  • Запуск тестового сервера Django
  • Как установить Anaconda на Ubuntu 24.04
  • Как настроить HTTPS для панели Wazuh
  • Как установить Wazuh на Ubuntu 24.04
  • Запуск нескольких сайтов на Caddy
Оставить комментарий Отменить ответ

Популярные статьи
  • Как подключиться по RDP из-под MacOS
  • Как установить PostgreSQL и pgAdmin4 в Ubuntu 20.04
  • Управление портами в Linux (Ubuntu/Debian/CentOS)
  • Настройка VPN с использованием WireGuard
  • Как извлекать и разархивировать файлы .tar.gz в Linux-системах
Разделы Справочника
  • Настройка VPS Сервера
  • Начало работы
  • Особенности виртуального сервера
  • Партнерам
  • Развертывание ПО на VPS сервере
  • Сетевые настройки сервера
GAME OVERNIGHT
CLOUDRUSSIA
STRATONET
SPACE DC
ARCTIC DC
VPS/VDS серверы:
Тестовый период
Дешевый VPS
VPS Старт
VPS Мощные
VPS Windows
VPS Быстрые NVMe
VPS с 1C
Форекс VPS
Игровые серверы
VPS для бизнеса
Пинг до дата-центров
Услуги:
Маркетплейс
Панель ispmanager
Антивирусная защита
Аренда лицензий
Облачное хранилище
VPS серверы с Plesk Obsidian
Колокация
Looking Glass
DNS
Клиентам:
О компании
Дата-Центры
Новости
Аттестация по ФСТЭК
Бонусная программа
Публичная Оферта
Соглашение об уровне услуг
Политика обработки персональных данных
Сувениры от RuVDS
Партнерам:
Для прессы
Партнерская программа
Отзывы
API
Помощь:
Справочник
FAQ
Созданных
серверов
231504
Huawey
Supermicro
Cisco
Intel
Microsoft
ISP
Kaspersky
RDCA Logo

«Креатив года» Премия ЦОДы.рф 2021, 2025

RDCA Logo

«Хостер года» Премия ЦОДы.рф 2023

RDCA Logo

«Человек года» Премия ЦОДы.рф 2024

RuVDS
support@RUVDS.com
8 (800) 775-97-42
+7 (495) 135-10-99
МЫ В СОЦИАЛЬНЫХ СЕТЯХ
Copyright © 2025 RuVDS. Все права защищены.
ООО "МТ ФИНАНС" | ОГРН 1157746680332
Оставить отзыв

Условия получения бонуса за оставленный отзыв:

  1. Напишите про нас на любом из специализированных сайтах для отзывов.
  2. Пришлите нам текст отзыва и ссылку на ваш отзыв.
  3. После проверки, мы опубликуем ваш отзыв у нас на сайте и также начислим бонус на ваш баланс.
Strong Testimonials form submission spinner.

Обязательное поле

Укажите электронную почту вашего аккаунта RUVDS
Укажите ссылку на ваш отзыв
rating fields
Поставьте оценку серверам RUVDS
Оставить отзыв
Strong Testimonials form submission spinner.

Обязательное поле

Укажите электронную почту вашего аккаунта RUVDS
Укажите ссылку на ваш отзыв
rating fields
Поставьте оценку серверам RUVDS