· 14 мин чтения

Angie: российский форк nginx, за полтора года занявший своё место в проде

Семёнов Евгений Сергеевич, директор АйТи Фреш. Когда в 2022 году главная команда разработчиков nginx покинула F5 и основала Web Server LLC в Москве, я воспринял это со скепсисом — форки часто умирают за полгода. К весне 2024 картина поменялась: Angie попал в Реестр отечественного ПО, получил несколько серьёзных релизов и стабильно работал у трёх моих клиентов, переехавших с оригинального nginx. Сегодня у нас на практике 12 продакшн-сайтов на Angie, и я готов рассказать, что это даёт и где ловушки.

Кто и зачем сделал Angie

Форк основан в 2022 году командой, которая 15 лет вела оригинальный nginx. Старший разработчик Валентин Бартенев, Руслан Ермилов, автор nginx.com — все ушли из F5 и собрали в Москве компанию Web Server. Цель — продолжать развитие веб-сервера с упором на корпоративные требования и независимость от санкционных рисков. Код лицензирован BSD 2-Clause, открыт в GitLab (github.com/webserver-llc/angie), разработка идёт на русском и английском.

Что улучшили относительно nginx

Community vs Pro — что выбрать

ВозможностьCommunityPro
Базовый веб-сервер и reverse proxyДаДа
HTTP/2, HTTP/3, TLS 1.3ДаДа
Prometheus-экспортёрБазовыйРасширенный
Live upstream (без reload)ЧтениеЧтение + запись
ACME/Let's Encrypt встроенныйНетДа
WAF-модульНетДа
OIDC/OAuth2НетДа
Коммерческая поддержка на русскомФорумSLA 24×7
Сертификат ФСТЭКНетВ процессе

Для обычного коммерческого сайта Community избыточен не будет. Pro беру только для госконтрактов и крупных интернет-магазинов, где нужна быстрая ротация upstream и WAF.

Установка на Debian 12 и AlmaLinux 9

# Debian / Ubuntu
curl -o /etc/apt/keyrings/angie-signing.gpg \
  https://angie.software/keys/angie-signing.gpg

echo "deb [signed-by=/etc/apt/keyrings/angie-signing.gpg] \
  https://download.angie.software/angie/debian/ bookworm main" \
  > /etc/apt/sources.list.d/angie.list

apt update
apt install -y angie
systemctl enable --now angie

# AlmaLinux / Rocky 9
cat > /etc/yum.repos.d/angie.repo << 'EOF'
[angie]
name=Angie repository
baseurl=https://download.angie.software/angie/almalinux/9/$basearch/
gpgcheck=1
gpgkey=https://angie.software/keys/angie-signing.gpg
enabled=1
EOF

dnf install -y angie
systemctl enable --now angie

Миграция конфигов с nginx

Angie совместим с nginx на уровне конфигов целиком. У меня на практике ещё ни разу не было случая, чтобы конфиг nginx не завёлся в Angie. Стандартная процедура миграции занимает 20-30 минут на сервер:

# 1) Бэкап конфига действующего nginx
nginx -T > /root/nginx-current.conf
tar czf /root/nginx-config-$(date +%F).tgz /etc/nginx /var/log/nginx

# 2) Остановка nginx
systemctl stop nginx
systemctl disable nginx

# 3) Установка Angie
apt install -y angie

# 4) Копируем конфиги
cp -a /etc/nginx/* /etc/angie/
chown -R angie:angie /etc/angie

# 5) Правим пути в конфиге, если есть nginx-specific
sed -i 's|/var/log/nginx|/var/log/angie|g' /etc/angie/nginx.conf
sed -i 's|/var/run/nginx.pid|/var/run/angie.pid|g' /etc/angie/nginx.conf

# 6) Проверка
angie -t
systemctl start angie
systemctl status angie

Prometheus-метрики

Одно из главных моих «за» в сторону Angie — встроенный экспортёр Prometheus. В nginx приходилось ставить отдельный контейнер nginx-prometheus-exporter, тянуть данные через stub_status. В Angie — две строчки:

http {
    status_zone main;

    server {
        listen 127.0.0.1:9090;
        location /p8s {
            prometheus all;
            access_log off;
        }
    }

    server {
        listen 443 ssl http2;
        server_name example.ru;
        status_zone example.ru;

        location /app {
            status_zone app_backend;
            proxy_pass http://app_upstream;
        }
    }
}

На 127.0.0.1:9090/p8s появляется полный набор метрик: запросы на зоне, upstream latency, 2xx/4xx/5xx, соединения, SSL handshakes. Цепляем Prometheus, строим Grafana-дашборд за 15 минут.

Live-конфигурация upstream

В Community-версии статус upstream доступен только на чтение:

curl http://127.0.0.1:9090/status/upstreams/app_upstream

В Pro — можно добавлять и удалять серверы без reload:

curl -X POST http://127.0.0.1:9090/status/upstreams/app_upstream/servers \
  -d '{"server":"10.0.0.5:8080","weight":2,"backup":false}'

curl -X DELETE http://127.0.0.1:9090/status/upstreams/app_upstream/servers/1

Для CI/CD это удобно: деплой скрипт выводит старый upstream из ротации, обновляет приложение, возвращает его обратно — без service reload и без обрыва keep-alive соединений.

Реальный кейс: перевод 12 сайтов клиента

В октябре 2024 обратился клиент — издательский дом в центре Москвы. 12 сайтов (порталы, магазин, личный кабинет), все на оригинальном nginx 1.22 в Debian 11, за балансировщиком HAProxy. Задача: перейти на российское ПО из Реестра для 223-ФЗ тендера. Миграция должна была пройти без даунтайма.

Провели одно утро в субботу. Схема:

  1. На серверах по очереди (из-под HAproxy выводили по одному).
  2. На каждом: бэкап конфига, установка Angie, копирование конфига, проверка angie -t, запуск.
  3. Smoke-test на 5 URL: главная, поиск, личный кабинет, API, статика.
  4. Возврат в HAproxy-ротацию.

Один сервер выпал: в конфиге было nginx в директиве server_tokens nginx; — не влияет на работу, но мы заметили и почистили. За 3.5 часа перевели все 6 фронтовых нод. Даунтайма не было, нагрузка на CPU стала ниже на 4-6% благодаря улучшенному HPACK-декодеру HTTP/2. Стоимость работ — 38 000 руб., тендер заказчик выиграл.

Где Angie ведёт себя не так, как nginx

Мониторинг и логи

# Лог-файлы по умолчанию
tail -F /var/log/angie/access.log /var/log/angie/error.log

# Основные метрики Prometheus
curl -s 127.0.0.1:9090/p8s | grep -E 'angie_http_(request|response|upstream)'

# Проверка конфига
angie -t
angie -V  # версия и флаги сборки

Мигрируем ваш веб-сервер на Angie

Перевожу с nginx на Angie без даунтайма: аудит конфигов, подготовка, перенос за одно техокно, настройка Prometheus и Grafana-дашбордов. В АйТи Фреш мы держим 8 серверов Dell Xeon Platinum 8280 в дата-центре МТС Москва и обслуживаем 30+ клиентских веб-инфраструктур. Типовая миграция — 1 рабочий день, стоимость от 18 000 руб.

Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш

FAQ — частые вопросы о Angie

Angie полностью совместим с nginx?
Да, конфигурации nginx работают в Angie без изменений. Форк делала команда основных разработчиков nginx, совместимость на уровне синтаксиса полная.
Что даёт Angie Pro по сравнению с Community?
Pro добавляет live-конфигурацию upstream без reload, расширенный Prometheus-экспортёр, OIDC, WAF-модуль, mTLS между узлами, русскоязычную enterprise-поддержку. Community достаточно для большинства веб-проектов.
Как мигрировать с nginx на Angie?
Простейший путь: остановить nginx, удалить пакет, установить angie, указать тот же путь к конфигам. Перед остановкой сохраните бэкап через nginx -T.
Есть ли проблемы с сертификацией ФСТЭК?
Angie включён в Реестр российского ПО Минцифры с 2022 года, что закрывает 223-ФЗ и 44-ФЗ. Сертификат ФСТЭК готовит Pro-редакция. Для коммерческих организаций без госсертификатов достаточно Community.
Производительность отличается от nginx?
На одинаковой нагрузке — в пределах 1-3% расхождения. Angie добавил несколько оптимизаций, но разница на обычных веб-нагрузках не ощущается.

Подпишитесь на рассылку ITfresh

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

Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.