Установка#

Установить Angie можно несколькими способами:

Бинарные пакеты#

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

Поддерживаемые дистрибутивы#

Дистрибутив

Версии

Архитектуры

AlmaLinux

9,   8

x86-64, arm64

Alpine

3.19,   3.18,   3.17,   3.16

x86-64, arm64

Альт

10
8

x86-64, arm64
x86-64

Astra SE

4.7
1.7

arm64
x86-64

CentOS

9,   8,   7

x86-64, arm64

Debian

12,   11,   10

x86-64, arm64

FreeBSD

14,   13

x86-64, arm64

openSUSE

15

x86-64, arm64

Oracle Linux

9,   8

x86-64, arm64

РЕД ОС

8
7

x86-64
x86-64, arm64

Rocky Linux

9,   8

x86-64, arm64

РОСА

Хром 12
Фреш 12

x86-64, arm64
x86-64

Ubuntu

22.04,   20.04

x86-64, arm64

Alma, CentOS, Oracle, РЕД ОС, Rocky, РОСА#

  1. Чтобы подключить репозиторий, создайте файл /etc/yum.repos.d/angie.repo с таким содержимым:

    [angie]
    name=Angie repo
    baseurl=https://download.angie.software/angie/almalinux/$releasever/
    gpgcheck=1
    enabled=1
    gpgkey=https://angie.software/keys/angie-signing.gpg.asc
    
  2. Установите пакет Angie:

    $ sudo yum install -y angie
    
  3. (Дополнительно) Установите пакеты необходимых вам динамических модулей:

    $ sudo yum install -y <ИМЯ ПАКЕТА>
    
  4. Запустите сервис:

    $ sudo systemctl start angie
    
  5. Чтобы автоматически запускать Angie после перезагрузки сервера:

    $ sudo systemctl enable angie
    

Alpine#

  1. Установите вспомогательные пакеты для подключения репозитория Angie:

    $ sudo apk update
    $ sudo apk add curl ca-certificates
    
  2. Скачайте открытый ключ репозитория Angie для проверки подлинности пакетов:

    $ sudo curl -o /etc/apk/keys/angie-signing.rsa \
                https://angie.software/keys/angie-signing.rsa
    
  3. Подключите репозиторий Angie:

    $ echo "https://download.angie.software/angie/alpine/v$(egrep -o \
           '[0-9]+\.[0-9]+' /etc/alpine-release)/main" \
           | sudo tee -a /etc/apk/repositories > /dev/null
    
  4. Обновите индексы репозиториев:

    $ sudo apk update
    
  5. Установите пакет Angie:

    $ sudo apk add angie
    
  6. (Дополнительно) Установите пакеты необходимых вам динамических модулей:

    $ sudo apk add <ИМЯ ПАКЕТА>
    
  7. Запустите сервис:

    $ sudo service angie start
    
  8. Чтобы автоматически запускать Angie после перезагрузки сервера:

    $ sudo rc-update add angie
    

Альт#

  1. Создайте каталог /etc/ssl/angie/:

    $ sudo mkdir -p /etc/ssl/angie/
    
  2. Установите вспомогательные пакеты для подключения репозитория Angie:

    $ sudo apt-get update
    $ sudo apt-get install -y curl apt-https
    
  3. Скачайте открытый ключ репозитория Angie для проверки подлинности пакетов:

    $ sudo curl -o /etc/ssl/angie/angie-signing.gpg \
          https://angie.software/keys/angie-signing.gpg
    
  4. Импортируйте скачанный ключ репозитория в цепочку доверенных ключей:

    $ sudo gpg --no-default-keyring \
          --keyring /usr/lib/alt-gpgkeys/pubring.gpg --import /etc/ssl/angie/angie-signing.gpg
    
  5. Сохраните сигнатуру ключа:

    $ echo 'simple-key "angie" {
              Fingerprint "EB8EAF3D4EF1B1ECF34865A2617AB978CB849A76";
              Name "Angie (Signing Key) <devops@tech.wbsrv.ru>";
      }' | sudo tee /etc/apt/vendors.list.d/angie.list > /dev/null
    
  6. Подключите репозиторий Angie:

    $ echo "rpm [angie] https://download.angie.software/angie/altlinux/10/ $(uname -m) main" \
        | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null
    
  7. Обновите индексы репозиториев:

    $ sudo apt-get update
    
  8. Установите пакет Angie:

    $ sudo apt-get install -y angie
    
  9. (Дополнительно) Установите пакеты необходимых вам динамических модулей:

    $ sudo apt-get install -y <ИМЯ ПАКЕТА>
    
  10. Запустите сервис:

    $ sudo systemctl start angie
    
  11. Чтобы автоматически запускать Angie после перезагрузки сервера:

    $ sudo systemctl enable angie
    

Astra SE#

  1. Установите вспомогательные пакеты для подключения репозитория Angie:

    $ sudo apt-get update
    $ sudo apt-get install -y ca-certificates curl lsb-release
    
  2. Скачайте открытый ключ репозитория Angie для проверки подлинности пакетов:

    $ sudo curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg \
                https://angie.software/keys/angie-signing.gpg
    
  3. Подключите репозиторий Angie:

    $ echo "deb https://download.angie.software/angie/astra-se/$(egrep -o \
           '[0-9]+.[0-9]+' /etc/astra_version) unstable main" \
           | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null
    
  4. Обновите индексы репозиториев:

    $ sudo apt-get update
    
  5. (Дополнительно) При работе в режиме замкнутой программной среды (ЗПС) установите пакет с ключом для проверки подлинности бинарных файлов Angie:

    $ sudo apt-get install -y angie-digsig-key
    

    Обновите ЗПС:

    $ sudo update-initramfs -uk all
    

    Затем перезагрузите сервер:

    $ sudo shutdown -r now
    
  6. Установите пакет Angie:

    $ sudo apt-get install -y angie
    
  7. (Дополнительно) Установите пакеты необходимых вам динамических модулей:

    $ sudo apt-get install -y <ИМЯ ПАКЕТА>
    

Debian, Ubuntu#

  1. Установите вспомогательные пакеты для подключения репозитория Angie:

    $ sudo apt-get update
    $ sudo apt-get install -y ca-certificates curl lsb-release
    
  2. Скачайте открытый ключ репозитория Angie для проверки подлинности пакетов:

    $ sudo curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg \
                https://angie.software/keys/angie-signing.gpg
    
  3. Подключите репозиторий Angie:

    $ echo "deb https://download.angie.software/angie/debian/ `lsb_release -cs` main" \
           | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null
    
  4. Обновите индексы репозиториев:

    $ sudo apt-get update
    
  5. Установите пакет Angie:

    $ sudo apt-get install -y angie
    
  6. (Дополнительно) Установите пакеты необходимых вам динамических модулей:

    $ sudo apt-get install -y <ИМЯ ПАКЕТА>
    

FreeBSD#

  1. Чтобы подключить репозиторий Angie, создайте каталоги:

    $ sudo mkdir -p /usr/local/etc/pkg/angie/ /usr/local/etc/pkg/repos/
    
  2. Чтобы настроить репозиторий, создайте файл /usr/local/etc/pkg/repos/angie.conf с таким содержимым:

    angie: {
       url: "https://download.angie.software/angie/freebsd/${VERSION_MAJOR}/${ARCH}",
       signature_type: "pubkey",
       pubkey: "/usr/local/etc/pkg/angie/angie-signing.rsa",
       enabled: yes
    }
    
  3. Скачайте открытый ключ репозитория Angie для проверки подлинности пакетов:

    $ sudo curl -o /usr/local/etc/pkg/angie/angie-signing.rsa \
                https://angie.software/keys/angie-signing.rsa
    
  4. Обновите индексы репозиториев:

    $ sudo pkg update
    
  5. Установите пакет Angie:

    $ sudo pkg install -y angie
    
  6. (Дополнительно) Установите пакеты необходимых вам динамических модулей:

    $ sudo pkg install -y <ИМЯ ПАКЕТА>
    
  7. Запустите сервис:

    $ sudo service angie start
    
  8. Чтобы автоматически запускать Angie после перезагрузки сервера:

    $ sudo sysrc angie_enable=YES
    

openSUSE#

  1. Чтобы подключить репозиторий, создайте файл /etc/zypp/repos.d/angie.repo с таким содержимым:

    [angie]
    name=Angie repo
    baseurl=https://download.angie.software/angie/opensuse/$releasever_major/
    gpgcheck=1
    enabled=1
    gpgkey=https://angie.software/keys/angie-signing.gpg.asc
    
  2. Обновите индексы репозиториев:

    $ sudo zypper refresh
    
  3. Установите пакет Angie:

    $ sudo zypper install -y angie
    
  4. (Дополнительно) Установите пакеты необходимых вам динамических модулей:

    $ sudo zypper install -y <ИМЯ ПАКЕТА>
    
  5. Запустите сервис:

    $ sudo systemctl start angie
    
  6. Чтобы автоматически запускать Angie после перезагрузки сервера:

    $ sudo systemctl enable angie
    

Динамические модули#

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

Модули также можно собирать из исходного кода, компилируя их с соответствующей версией Angie.

Пакеты динамических модулей из дистрибутива Angie:

angie-module-image-filter

Добавляет преобразования изображений в форматах JPEG, GIF, PNG и WebP.

angie-module-njs: http_js_module, stream_js_module

Позволяют использовать язык njs (подмножество JavaScript) в конфигурации Angie соответственно в контекстах http и stream.

angie-module-perl

Позволяет писать обработчики location и переменных на Perl, а также вызывать Perl из SSI.

angie-module-xslt

Добавляет фильтр, преобразующий XML-ответ с помощью XSLT-шаблонов.

Мы также собираем и публикуем в нашем репозитории пакеты следующих сторонних модулей:

angie-module-auth-jwt

Добавляет JWT-аутентификацию клиентов.

angie-module-auth-ldap

Добавляет поддержку LDAP-аутентификации с несколькими серверами.

angie-module-auth-spnego

Добавляет поддержку SPNEGO и GSSAPI.

angie-module-brotli

Добавляет статическое и динамическое Brotli-сжатие ответов.

angie-module-cache-purge

Позволяет очищать содержимое кэшей FastCGI, прокси, SCGI и uWSGI.

angie-module-dav-ext

Расширяет поддержку WebDAV методами PROPFIND и OPTIONS.

angie-module-dynamic-limit-req

Служит для динамической блокировки IP-адресов и ее периодического снятия.

angie-module-echo

Позволяет использовать echo, sleep, time, exec и другие шелл-команды в файле конфигурации.

angie-module-enhanced-memcached

Расширяет возможности встроенного модуля http_memcached.

angie-module-eval

Позволяет сохранять в переменных тела ответов на подзапросы.

angie-module-geoip2: http_geoip2, stream_geoip2

Добавляет поиск по геоданным в базах GeoIP2 MaxMind 2.

angie-module-headers-more

Позволяет устанавливать и очищать заголовки запросов и ответов.

angie-module-keyval

Позволяет использовать переменные со значениями из пар «ключ-значение».

angie-module-lua: http_lua_module, stream_lua_module

Позволяют использовать язык Lua в конфигурации Angie соответственно в контекстах http и stream.

angie-module-modsecurity

Добавляет коннектор для использования правил ModSecurity.

Примечание

Пакет нуждается в дополнительной настройке.

angie-module-ndk

Добавляет Nginx Development Kit (NDK) для разработки новых модулей.

angie-module-otel

Позволяет отправлять данные телеметрии сборщику OpenTelemetry.

angie-module-opentracing

Добавляет распределенную OpenTracing-трассировку запросов в Angie; содержит плагины для экспорта данных в Zipkin и DataDog.

angie-module-postgres

Включает непосредственную поддержку баз данных PostgreSQL.

angie-module-redis2

Добавляет протокол Redis 2.0 в HTTP-апстримы.

angie-module-rtmp

Добавляет протокол RTMP для стриминга и трансляции видео по запросу.

angie-module-set-misc

Добавляет различные директивы set_xxx в модуль rewrite.

angie-module-subs

Позволяет заменять строки в теле HTTP-ответа по регулярным выражениям.

angie-module-testcookie

Помогает бороться с ботами при помощи механизма «вызов-ответ» на основе cookie.

angie-module-upload

Добавляет кодировку multipart/form-data (RFC 1868) для отправки файлов со стороны клиента, включая возможность возобновления.

angie-module-vod

Позволяет перепаковывать MP4-файлы для стриминга по HLS, HDS, MSS и DASH.

angie-module-zip

Включает динамическую упаковку ZIP-архивов.

angie-module-zstd

Включает сжатие Zstandard.

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

Docker-образы (OSS)#

Для запуска Angie в контейнере Docker используйте образы из нашего реестра:

docker.angie.software/angie
docker.angie.software/angie:latest
docker.angie.software/angie:1.5.0
docker.angie.software/angie:1.5.0-alpine
docker.angie.software/angie:1.5.0-centos
docker.angie.software/angie:1.5.0-debian
docker.angie.software/angie:1.5.0-oracle
docker.angie.software/angie:1.5.0-rocky
docker.angie.software/angie:1.5.0-ubuntu

Чтобы запустить контейнер c Angie на 8080 порте, открыв ему доступ на чтение к каталогу со статическими файлами /var/www/ и файлу конфигурации angie.conf, лежащему в текущем рабочем каталоге:

$ docker run --rm --name angie -v /var/www:/usr/share/angie/html:ro \
    -v $(pwd)/angie.conf:/etc/angie/angie.conf:ro -p 8080:80 -d docker.angie.software/angie:latest

$ curl -I localhost:8080

    HTTP/1.1 200 OK
    Server: Angie/1.5.0
    Date: Wed, 27 Mar 2024 10:42:54 GMT
    Content-Type: text/html
    Content-Length: 543
    Last-Modified: Wed, 27 Mar 2024 09:12:23 GMT
    Connection: keep-alive
    ETag: "64c3ccc7-21f"
    Accept-Ranges: bytes

Подобная конфигурация подойдет для локальной разработки и настройки.

Также можно самостоятельно определить образ на основе поддерживаемого дистрибутива, добавив слой Angie из пакетов или исходного кода. Примеры соответствующих файлов Dockerfile:

Debian, сборка Angie из пакетов#
FROM debian:12

LABEL org.opencontainers.image.authors="Release Engineering Team <devops@tech.wbsrv.ru>"

ARG DEBIAN_FRONTEND=noninteractive

RUN set -x \
     && apt-get update \
     && apt-get install --no-install-recommends --no-install-suggests -y \
          ca-certificates lsb-release curl \
     && curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg \
          https://angie.software/keys/angie-signing.gpg \
     && echo "deb https://download.angie.software/angie/debian/ `lsb_release \
           -cs` main" > /etc/apt/sources.list.d/angie.list \
     && apt-get update \
     && apt-get install --no-install-recommends --no-install-suggests -y \
          angie angie-module-geoip2 angie-module-njs \
     && apt-get remove --auto-remove --purge -y lsb-release \
     && rm -Rf /var/lib/apt/lists \
          /etc/apt/sources.list.d/angie.list \
          /etc/apt/trusted.gpg.d/angie-signing.gpg \
     && ln -sf /dev/stdout /var/log/angie/access.log \
     && ln -sf /dev/stderr /var/log/angie/error.log

EXPOSE 80

CMD ["angie", "-g", "daemon off;"]
Alpine, сборка Angie из пакетов#
FROM alpine:3.19

LABEL org.opencontainers.image.authors="Release Engineering Team <devops@tech.wbsrv.ru>"

RUN set -x \
     && apk add --no-cache ca-certificates curl \
     && curl -o /etc/apk/keys/angie-signing.rsa https://angie.software/keys/angie-signing.rsa \
     && echo "https://download.angie.software/angie/alpine/v$(egrep -o \
          '[0-9]+\.[0-9]+' /etc/alpine-release)/main" >> /etc/apk/repositories \
     && apk add --no-cache angie angie-module-geoip2 angie-module-njs \
     && rm /etc/apk/keys/angie-signing.rsa \
     && ln -sf /dev/stdout /var/log/angie/access.log \
     && ln -sf /dev/stderr /var/log/angie/error.log

EXPOSE 80

CMD ["angie", "-g", "daemon off;"]

Чтобы собрать образ myangie в каталоге с таким Dockerfile и запустить контейнер, как показано выше:

$ docker build -t myangie .
$ docker run --rm --name myangie -v /var/www:/usr/share/angie/html:ro \
    -v $(pwd)/angie.conf:/etc/angie/angie.conf:ro -p 8080:80 -d myangie

Сборка из исходников (OSS)#

Рекомендуем устанавливать Angie из пакетов. Если вам всё же нужна своя сборка:

  1. Скачайте архив .tar.gz с нашего сайта:

    $ curl -O https://download.angie.software/files/angie-1.5.0.tar.gz
    
  2. Распакуйте архив и перейдите в каталог с исходными файлами:

    $ tar -xpf angie-1.5.0.tar.gz
    $ cd angie-1.5.0
    
  3. Для подготовки используйте скрипт configure, который определяет характеристики ОС, где производится сборка, в частности методы, доступные Angie при обработке соединений. После успешного запуска скрипт создаёт файл Makefile.

    Перед запуском configure изучите и выберите нужные параметры:

    $ ./configure <ПАРАМЕТРЫ>
    
  4. Получив Makefile, скомпилируйте и установите Angie:

    $ make
    $ make install
    

Параметры configure#

Общие#

Параметр

Умолчание

--help
печатает справочное сообщение.

--user=имя
задаёт имя непривилегированного пользователя, с правами которого будут выполняться рабочие процессы. После установки это имя можно всегда поменять в конфигурационном файле angie.conf с помощью директивы user.

nobody

--group=имя
задаёт имя группы, с правами которой будут выполняться рабочие процессы. После установки это имя можно всегда поменять в конфигурационном файле angie.conf с помощью директивы user.

совпадает с именем непривилегированного пользователя

--build=имя
задаёт необязательное имя сборки Angie.

--builddir=путь
задаёт каталог для сборки.

objs

Пути#

Параметр

Умолчание

--prefix=путь
задаёт каталог, в котором будут находиться файлы сервера. Этот же каталог будет использоваться для всех относительных путей, задаваемых configure (кроме путей к исходным текстам библиотек) и в конфигурационном файле angie.conf.

/usr/local/angie

--sbin-path=путь
задаёт имя исполняемого файла Angie. Это имя используется только на стадии установки.

<префикс>/sbin/angie

--modules-path=путь
задаёт каталог, в который будут устанавливаться динамические модули.

<префикс>/modules

--conf-path=путь
задаёт имя конфигурационного файла angie.conf. При желании Angie можно всегда запустить с другим конфигурационным файлом, указав его в параметре командной строки -c файл.

<префикс>/conf/angie.conf

--error-log-path=путь
задаёт имя основного файла ошибок, предупреждений и диагностики. После установки имя файла можно всегда поменять в конфигурационном файле angie.conf с помощью директивы error_log.

<префикс>/logs/error.log

--pid-path=путь
задаёт имя файла angie.pid, в котором будет храниться номер главного процесса. После установки имя файла можно всегда поменять в конфигурационном файле angie.conf с помощью директивы pid.

<префикс>/logs/angie.pid

--lock-path=путь
задаёт префикс имён файлов блокировок. После установки значение можно всегда поменять в конфигурационном файле angie.conf с помощью директивы lock_file.

<префикс>/logs/angie.lock

--http-acme-client-path=path
задает каталог для хранения сертификатов и ключей блоков server, в которых заданы директивы acme.

<префикс>/acme_client

--http-log-path=путь
задаёт имя основного файла регистрации запросов HTTP-сервера. После установки имя файла можно всегда поменять в конфигурационном файле angie.conf с помощью директивы access_log.

<префикс>/logs/access.log

--http-client-body-temp-path=путь
задаёт каталог для хранения временных файлов с телами запросов клиентов. После установки имя файла можно всегда поменять в конфигурационном файле angie.conf с помощью директивы client_body_temp_path.

<префикс>/client_body_temp

--http-proxy-temp-path=путь
задаёт каталог для хранения временных файлов с данными, полученными от проксируемых серверов. После установки имя файла можно всегда поменять в конфигурационном файле angie.conf с помощью директивы proxy_temp_path.

<префикс>/proxy_temp

--http-fastcgi-temp-path=путь
задаёт каталог для хранения временных файлов с данными, полученными от FastCGI-серверов. После установки имя файла можно всегда поменять в конфигурационном файле angie.conf с помощью директивы fastcgi_temp_path.

<префикс>/fastcgi_temp

--http-uwsgi-temp-path=путь
задаёт каталог для хранения временных файлов с данными, полученными от uwsgi-серверов. После установки имя файла можно всегда поменять в конфигурационном файле angie.conf с помощью директивы uwsgi_temp_path.

<префикс>/uwsgi_temp

--http-scgi-temp-path=путь
задаёт каталог для хранения временных файлов с данными, полученными от SCGI-серверов. После установки имя файла можно всегда поменять в конфигурационном файле angie.conf с помощью директивы scgi_temp_path.

<префикс>/scgi_temp

Функциональность и зависимости#

--with-select_module / --without-select_module
разрешает или запрещает сборку модуля для работы сервера с помощью метода select(). Этот модуль собирается автоматически, если на платформе не обнаружено более подходящего метода — kqueue, epoll или /dev/poll.

--with-poll_module / --without-poll_module
разрешает или запрещает сборку модуля для работы сервера с помощью метода poll(). Этот модуль собирается автоматически, если на платформе не обнаружено более подходящего метода — kqueue, epoll или /dev/poll.

--with-threads
разрешает использование пулов потоков.

--with-file-aio
разрешает использование файлового асинхронного ввода-вывода (AIO) во FreeBSD и Linux.

--with-debug
разрешает отладочный лог.

--without-http-cache
запрещает HTTP-кэш.

--with-pcre
разрешает использование библиотеки PCRE.
--with-pcre=путь
задаёт путь к исходным текстам библиотеки PCRE. Дистрибутив библиотеки нужно взять на сайте PCRE и распаковать. Всё остальное сделают ./configure Angie и make. Библиотека нужна для использования регулярных выражений в директиве location и для модуля http_rewrite.
--with-pcre-opt=параметры
задаёт дополнительные параметры сборки PCRE.
--with-pcre-jit
собирает библиотеку PCRE с поддержкой JIT-компиляции (директива pcre_jit).

--without-pcre
запрещает использование библиотеки PCRE.

--without-pcre2
запрещает использование библиотеки PCRE2 вместо исходной библиотеки PCRE.

--with-libatomic
разрешает сборку с библиотекой libatomic_ops.
--with-libatomic=путь
задаёт путь к исходным текстам библиотеки libatomic_ops.

--with-openssl=путь
включает статическую сборку и задаёт путь к исходным текстам библиотеки OpenSSL.
--with-openssl-opt=параметры
задаёт дополнительные параметры сборки OpenSSL.

--with-ntls
включает серверную и клиентскую поддержку NTLS в HTTP и stream (server-side, client_side при сборке с NTLS-enabled SSL библиотекой.

--with-zlib=путь
задаёт путь к исходным текстам библиотеки zlib. Дистрибутив библиотеки (версию 1.1.3 — 1.2.11) нужно взять на сайте zlib и распаковать. Всё остальное сделают ./configure Angie и make. Библиотека нужна для модуля http_gzip.
--with-zlib-opt=параметры
задаёт дополнительные параметры сборки zlib.
--with-zlib-asm=cpu
разрешает использование при сборке библиотеки zlib ассемблерных вставок, оптимизированных для одного из следующих процессоров: pentium, pentiumpro.

Модули Angie#

http#
Подключение дополнительных модулей#

--with-http_acme_module
разрешает сборку модуля http_acme, который включает протокол ACME.

--with-http_addition_module
разрешает сборку модуля http_addition, позволяющего добавлять текст до и после ответа.

--with-http_auth_request_module
разрешает сборку модуля http_auth_request, предоставляющего возможность авторизации клиента, основанной на результате подзапроса.

--with-http_dav_module
разрешает сборку модуля http_dav, предназначенного для автоматизации задач управления файлами на сервере по протоколу WebDAV.

--with-http_degradation_module
разрешает сборку модуля ngx_http_degradation_module.

--with-http_flv_module
разрешает сборку модуля http_flv, обеспечивающего серверную поддержку псевдо-стриминга для файлов Flash Video (FLV).

--with-http_geoip_module / --with-http_geoip_module=dynamic
разрешает сборку модуля http_geoip, создающего переменные, значения которых зависят от IP-адреса клиента, используя готовые базы данных MaxMind.

--with-http_gunzip_module
разрешает сборку модуля http_gunzip, позволяющего распаковывать ответы с «Content-Encoding: gzip» для тех клиентов, которые не поддерживают метод сжатия gzip.

--with-http_gzip_static_module
разрешает сборку модуля http_gzip_static, позволяющего отдавать вместо обычного файла предварительно сжатый файл с таким же именем и с расширением «.gz».

--with-http_image_filter_module / --with-http_image_filter_module=dynamic
разрешает сборку модуля http_image_filter, позволяющего преобразовывать изображения в форматах JPEG, GIF, PNG и WebP.

--with-http_mp4_module
разрешает сборку модуля http_mp4, обеспечивающего серверную поддержку псевдо-стриминга для файлов в формате MP4.

--with-http_perl_module / --with-http_perl_module=dynamic
разрешает сборку модуля, добавляющего встроенный Perl.
--with-perl_modules_path=путь
задаёт каталог, в котором будут находиться файлы модулей Perl.
--with-perl=путь
задаёт имя исполняемого файла Perl.

--with-http_random_index_module
разрешает сборку модуля http_random_index, обслуживающего запросы, оканчивающиеся косой чертой (/), и выдающего случайный файл в качестве индексного файла каталога.

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

--with-http_secure_link_module
разрешает сборку модуля http_secure_link.

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

--with-http_ssl_module
разрешает сборку модуля для работы HTTP-сервера по протоколу HTTPS.
Для сборки и работы этого модуля нужна библиотека OpenSSL.

--with-http_stub_status_module
разрешает сборку модуля http_stub_status, предоставляющего доступ к базовой информации о состоянии сервера.

--with-http_sub_module
разрешает сборку модуля http_sub, позволяющего изменять в ответе одну заданную строку на другую.

--with-http_v2_module
разрешает сборку модуля для работы HTTP-сервера по протоколу HTTP/2.

--with-http_v3_module
разрешает сборку модуля для работы HTTP-сервера по протоколу HTTP/3.
Для сборки и работы этого модуля рекомендуется использовать библиотеку SSL с поддержкой QUIC, например BoringSSL, LibreSSL, QuicTLS. Иначе, при использовании библиотеки OpenSSL, будет использоваться OpenSSL compatibility layer, в котором не поддерживается early data.

--with-http_xslt_module / --with-http_xslt_module=dynamic
разрешает сборку модуля http_xslt, позволяющего преобразовывать XML-ответ с помощью XSLT-шаблонов.
Для сборки и работы этого модуля нужны библиотеки libxml2 и libxslt.

--with-google_perftools_module
разрешает сборку модуля google_perftools, обеспечивающего поддержку профилирования рабочих процессов Angie при помощи Google Performance Tools. Модуль предназначен для разработчиков Angie.

Отключение стандартных модулей#

--without-http
запрещает HTTP сервер.

--without-http_access_module
запрещает сборку модуля http_access, позволяющего ограничить доступ для определённых адресов клиентов.

--without-http_api_module
запрещает сборку модуля API, включающего HTTP RESTful интерфейс для получения информации о веб-сервере в формате JSON.

--without-http_auth_basic_module
запрещает сборку модуля http_auth_basic, позволяющего ограничить доступ к ресурсам с проверкой имени и пароля пользователя по протоколу «HTTP Basic Authentication».

--without-http_autoindex_module
запрещает сборку модуля http_autoindex, обслуживающего запросы, оканчивающиеся косой чертой (/), и выдающего листинг каталога, когда модуль http_index не нашёл индексный файл.

--without-http_browser_module
запрещает сборку модуля http_browser, создающего переменные, значения которых зависят от значения поля «User-Agent» в заголовке запроса.

--without-http_charset_module
запрещает сборку модуля http_charset, позволяющего добавлять указанную кодировку в поле «Content-Type» заголовка ответа и перекодировать данные из одной кодировки в другую.

--without-http_empty_gif_module
запрещает сборку модуля, выдающего однопиксельный прозрачный GIF.

--without-http_fastcgi_module
запрещает сборку модуля http_fastcgi, позволяющего передавать запросы FastCGI-серверу.

--without-http_geo_module
запрещает сборку модуля http_geo, позволяющего создавать переменные, значения которых зависят от IP-адреса клиента.

--without-http_gzip_module
запрещает сборку модуля сжатия ответов HTTP-сервера. Для сборки и работы этого модуля нужна библиотека zlib.

--without-http_grpc_module
запрещает сборку модуля http_grpc, позволяющего передавать запросы gRPC-серверу.

--without-http_limit_conn_module
запрещает сборку модуля http_limit_conn, позволяющего ограничить число соединений по заданному ключу, в частности, число соединений с одного IP-адреса.

--without-http_limit_req_module
запрещает сборку модуля http_limit_req, позволяющего ограничить скорость обработки запросов по заданному ключу или, как частный случай, скорость обработки запросов, поступающих с одного IP-адреса.

--without-http_map_module
запрещает сборку модуля http_map, позволяющего создавать переменные, значения которых зависят от значений других переменных.

--without-http_memcached_module
запрещает сборку модуля http_memcached, позволяющего получать ответы из сервера memcached.

--without-http_mirror_module
запрещает сборку модуля http_mirror, позволяющего зеркалировать исходный запрос при помощи создания фоновых зеркалирующих подзапросов.

--without-http_prometheus_module
запрещает сборку модуля Prometheus HTTP-сервера.

--without-http_proxy_module
запрещает сборку проксирующего модуля HTTP-сервера.

--without-http_referer_module
запрещает сборку модуля http_referer, позволяющего блокировать доступ к сайту для запросов с неверными значениями поля «Referer» в заголовке.

--without-http_rewrite_module
запрещает сборку модуля HTTP-сервера, позволяющего делать перенаправления и менять URI запросов. Для сборки и работы этого модуля нужна библиотека PCRE.

--without-http_scgi_module
запрещает сборку модуля http_scgi, позволяющего передавать запросы SCGI-серверу.

--without-http_split_clients_module
запрещает сборку модуля http_split_clients, позволяющего создавать переменные для A/B тестирования.

--without-http_ssi_module
запрещает сборку модуля http_ssi, обрабатывающего команды SSI (Server Side Includes) в проходящих через него ответах.

--without-http_upstream_hash_module
запрещает сборку модуля, реализующего метод балансировки нагрузки hash.

--without-http_upstream_ip_hash_module
запрещает сборку модуля, реализующего метод балансировки нагрузки ip_hash.

--without-http_upstream_keepalive_module
запрещает сборку модуля, реализующего кэширование соединений к вышестоящим серверам.

--without-http_upstream_least_conn_module
запрещает сборку модуля, реализующего метод балансировки нагрузки least_conn.

--without-http_upstream_random_module
запрещает сборку модуля, реализующего метод балансировки нагрузки random.

--without-http_upstream_sticky_module
запрещает сборку модуля, реализующего привязку всех запросов внутри клиентской сессии к единственному серверу в группе upstream.

--without-http_upstream_zone_module
запрещает сборку модуля, позволяющего сохранять рабочее состояние группы вышестоящих серверов в разделяемой памяти.

--without-http_userid_module
запрещает сборку модуля http_userid, выдающего куки для идентификации клиентов.

--without-http_uwsgi_module
запрещает сборку модуля http_uwsgi, позволяющего передавать запросы uwsgi-серверу.

stream#
Подключение дополнительных модулей#

--with-stream / --with-stream=dynamic
разрешает сборку модуля stream для TCP/UDP-проксирования и балансировки.

--with-stream_geoip_module / --with-stream_geoip_module=dynamic
разрешает сборку модуля stream_geoip, создающего переменные, значения которых зависят от IP-адреса клиента, используя готовые базы данных MaxMind.

--with-stream_realip_module
разрешает сборку модуля stream_realip, позволяющего менять адрес клиента на переданный в заголовке протокола PROXY.

--with-stream_ssl_module
разрешает сборку модуля для работы модуля stream по протоколу SSL/TLS. Для сборки и работы этого модуля нужна библиотека OpenSSL.

--with-stream_ssl_preread_module
разрешает сборку модуля stream_ssl_preread, позволяющего извлекать информацию из сообщения ClientHello без терминирования SSL/TLS.

--with-stream_mqtt_preread_module
разрешает сборку модуля stream_mqtt_preread, позволяющего извлекать идентификатор клиента и имя пользователя из пакета CONNECT протокола MQTT версий 3.1.1 и 5.0.

Отключение стандартных модулей#

--without-stream_access_module
запрещает сборку модуля stream_access, позволяющего ограничить доступ для определённых адресов клиентов.

--without-stream_geo_module
запрещает сборку модуля stream_geo, позволяющего создавать переменные, значения которых зависят от IP-адреса клиента.

--without-stream_limit_conn_module
запрещает сборку модуля stream_limit_conn, позволяющего ограничить число соединений по заданному ключу, в частности, число соединений с одного IP-адреса.

--without-stream_map_module
запрещает сборку модуля stream_map, позволяющего создавать переменные, значения которых зависят от значений других переменных.

--without-stream_return_module
запрещает сборку модуля stream_return, позволяющего отправить заданное значение клиенту и после этого закрыть соединение.

--without-stream_set_module
запрещает сборку модуля stream_set, позволяющего устанавливать значение переменной.

--without-stream_split_clients_module
запрещает сборку модуля stream_split_clients, позволяющего создавать переменные для A/B тестирования.

--without-stream_upstream_hash_module
запрещает сборку модуля, реализующего метод балансировки нагрузки hash.

--without-stream_upstream_least_conn_module
запрещает сборку модуля, реализующего метод балансировки нагрузки least_conn.

--without-stream_upstream_random_module
запрещает сборку модуля, реализующего метод балансировки нагрузки random.

--without-stream_upstream_zone_module
запрещает сборку модуля, позволяющего сохранять рабочее состояние группы вышестоящих серверов в разделяемой памяти.

mail#
Подключение дополнительных модулей#

--with-mail / --with-mail=dynamic
разрешает POP3/IMAP4/SMTP почтовый прокси.

--with-mail_ssl_module
разрешает сборку модуля для работы почтового прокси-сервера по протоколу SSL/TLS. Для сборки и работы этого модуля нужна библиотека OpenSSL.

Отключение стандартных модулей#

--without-mail_imap_module
запрещает протокол IMAP в почтовом прокси-сервере.

--without-mail_pop3_module
запрещает протокол POP3 в почтовом прокси-сервере.

--without-mail_smtp_module
запрещает протокол SMTP в почтовом прокси-сервере.

Параметры компиляции#

--with-cpp_test_module
разрешает сборку модуля ngx_cpp_test_module.

--add-module=путь
разрешает сборку внешнего модуля.

--add-dynamic-module=путь
разрешает сборку внешнего динамического модуля.

--with-compat
включает режим совместимости с динамическими модулями.

--with-cc=путь
задаёт компилятор, который будет использоваться при сборке.

--with-cpp=путь
задаёт препроцессор, который будет использоваться при сборке.

‑‑with‑cc‑opt="‑I /usr/local/include". Если нужно увеличить число файлов, с которыми может работать select(), то это тоже можно задать здесь же: ‑‑with‑cc‑opt="‑D FD_SETSIZE=2048".

--with-ld-opt=параметры
задаёт дополнительные параметры, которые будут использованы при линковке. При использовании системной библиотеки PCRE во FreeBSD, нужно указать ‑‑with‑ld‑opt="‑L /usr/local/lib".

--with-cpu-opt=cpu
разрешает сборку для одного из следующих процессоров: pentium, pentiumpro, pentium3, pentium4, athlon, opteron, sparc32, sparc64, ppc64.

Пример использования параметров#

./configure \
     --sbin-path=/usr/sbin/angie \
     --conf-path=/etc/angie/angie.conf \
     --pid-path=/run/angie.pid \
     --with-http_ssl_module \
     --with-pcre=../pcre2-10.40 \
     --with-zlib=../zlib-1.3