Установка#

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

Alpine#

Версия

Платформа

3.17

x86_64, aarch64

3.16

x86_64, aarch64

3.15

x86_64, aarch64

3.14

x86_64, aarch64

CentOS#

Версия

Платформа

9

x86_64, aarch64

8

x86_64, aarch64

Debian#

Версия

Платформа

11 “Bullseye”

x86_64, aarch64

10 “Buster”

x86_64, aarch64

Oracle#

Version

Platform

9

x86_64, aarch64

8

x86_64, aarch64

RED OS#

Версия

Платформа

7.3 “MUROM“

x86_64

Rocky#

Версия

Платформа

9

x86_64, aarch64

8

x86_64, aarch64

Ubuntu#

Версия

Платформа

22.04 “Jammy Jellyfish”

x86_64, aarch64

20.04 “Focal Fossa“

x86_64, aarch64

Установка на сервер#

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

Alpine#

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

$ sudo apk add curl ca-certificates
  1. Теперь нужно импортировать официальный ключ, используемый apk для проверки подлинности пакетов. Скачайте ключ:

$ sudo curl -o /etc/apk/keys/angie-signing.rsa \
       https://angie.software/keys/angie-signing.rsa
  1. Для подключения apk-репозитория 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
  1. Чтобы установить Angie, выполните следующие команды:

$ sudo apk update
$ sudo apk add angie
$ sudo service angie start
  1. Чтобы Angie стартовал после перезагрузки сервера, выполните команду:

$ sudo rc-update add angie

CentOS /Oracle / RED OS / Rocky#

  1. Для подключения yum-репозитория создайте файл с именем /etc/yum.repos.d/angie.repo со следующим содержимым:

[angie]
name=Angie repo
baseurl=https://download.angie.software/angie/centos/$releasever/
gpgcheck=1
enabled=1
gpgkey=https://angie.software/keys/angie-signing.gpg
  1. Чтобы установить Angie, выполните следующую команду:

$ sudo yum install angie

Debian / Ubuntu#

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

$ sudo apt install ca-certificates curl lsb-release
  1. Теперь нужно импортировать официальный ключ, используемый apt для проверки подлинности пакетов. Скачайте ключ:

$ sudo curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg \
            https://angie.software/keys/angie-signing.gpg
  1. Для подключения apt-репозитория Angie, выполните следующую команду:

echo "deb https://download.angie.software/angie/debian/ `lsb_release -cs` main" \
     | sudo tee /etc/apt/sources.list.d/angie.list >/dev/null
  1. Чтобы установить Angie, выполните следующие команды:

$ sudo apt update
$ sudo apt install angie

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

Angie поддерживает расширение базовой функциональности за счёт подключения динамических модулей. Модули должны быть скомпилированы динамическими с соответствующей версий Angie.

В репозитории Angie представлены следующие пакеты динамических модулей:

angie-module-auth-spnego
angie-module-brotli
angie-module-dav-ext
angie-module-geoip2
angie-module-headers-more
angie-module-image-filter
angie-module-ndk
angie-module-njs
angie-module-perl
angie-module-rtmp
angie-module-set-misc
angie-module-xslt

Docker-контейнер#

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

docker.angie.software/angie
docker.angie.software/angie:latest
docker.angie.software/angie:1.1.0
docker.angie.software/angie:1.1.0-debian
docker.angie.software/angie:1.1.0-alpine

Также возможно собрать свои образы с помощью Dockerfile на выбор:

debian:latest#
FROM debian:latest

LABEL maintainer="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:latest#
FROM alpine:latest

LABEL maintainer="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;"]

Docker образ соберите командой docker build:

$ docker build -t myangie .

-t

имя образа

.

в текущей директории, содержащей Dockerfile

Наличие результирующего образа проверяется командой docker images:

$ docker images

   REPOSITORY              TAG             IMAGE ID       CREATED          SIZE
   myangie                 latest          5dc27ac5980f   13 seconds ago   15.5MB

Запустить контейнер командой docker run:

$ docker run --rm --name myangie -p 8080:80 -d myangie

Или для использования готового образа:

$ docker run --rm --name myangie -p 8080:80 -d docker.angie.software/angie

--rm

опция docker run, автоматически удаляет контейнер после его остановки

--name

назначает имя контейнеру

-p, --publish

публикует порт 80 контейнера как 8080 на Docker хосте

-d, --detach

запускает контейнер в фоне

Проверить доступность Angie можно, например, с помощью curl:

$ curl -I localhost:8080

   HTTP/1.1 200 OK
   Server: Angie/1.1.0

Остановить и удалить контейнер, запущенный с опцией –rm:

$ docker stop myangie

Обеспечить контейнеру доступ к статическим файлам сайта и внешнему файлу конфигурации Angie можно указав при старте опции docker run, например:

$ 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

-v, --volume

монтирует указанный путь файловой системы внутрь контейнера

:ro

запрещает запись изнутри контейнера в смонтированные файлы

Сборка из исходных файлов#

Рекомендуется устанавливать Angie из бинарных пакетов. Если по каким-то причинам вам нужна собственная сборка, исходные файлы можно получить:

Скачать архив нужного релиза

  1. .tar.gz с сайта

$ curl -O https://download.angie.software/files/angie-1.1.0.tar.gz

Исходные файлы релиза можно также скачать с GitHub

  1. Распаковать архив:

$ tar -xpf angie-1.1.0.tar.gz
  1. Сборка производится в директории с исходными файлами

$ cd angie-1.1.0
  1. Сборка подготавливается скриптом configure. Он определяет особенности системы и, в частности, методы, которые Angie может использовать для обработки соединений. В конце концов он создаёт Makefile.

Параметры скрипта configure

$ ./configure
$ make
$ make install

Обратите внимание

Предупреждение

Angie устанавливается со следующими отличиями от Nginx:

  1. Пути к исполняемому файлу, конфигурационному файлу, файлам логов, динамическим модулям и временным файлам

prefix=/etc/angie
conf-path=/etc/angie/angie.conf
error-log-path=/var/log/angie/error.log
http-log-path=/var/log/angie/access.log
lock-path=/var/run/angie.lock
modules-path=/usr/lib/angie/modules
pid-path=/var/run/angie.pid
sbin-path=/usr/sbin/angie
http-client-body-temp-path=/var/cache/angie/client_temp
http-fastcgi-temp-path=/var/cache/angie/fastcgi_temp
http-proxy-temp-path=/var/cache/angie/proxy_temp
http-scgi-temp-path=/var/cache/angie/scgi_temp
http-uwsgi-temp-path=/var/cache/angie/uwsgi_temp

.. lock-path=/run/angie.lock
.. pid-path=/run/angie.pid
  1. Модули, статически включённые в сборку

http_addition_module
http_auth_request_module
http_dav_module
http_flv_module
http_gunzip_module
http_gzip_static_module
http_mp4_module
http_random_index_module
http_realip_module
http_secure_link_module
http_slice_module
http_ssl_module
http_stub_status_module
http_sub_module
http_v2_module
mail
mail_ssl_module
stream
stream_realip_module
stream_ssl_module
stream_ssl_preread_module
  1. Пакеты динамических модулей, доступные в репозитории

angie-module-auth-spnego
angie-module-brotli
angie-module-dav-ext
angie-module-geoip2
angie-module-headers-more
angie-module-image-filter
angie-module-ndk
angie-module-njs
angie-module-perl
angie-module-rtmp
angie-module-set-misc
angie-module-xslt

Скрипт configure поддерживает следующие параметры:

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

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

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

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

--conf-path=путь задаёт имя конфигурационного файла angie.conf. При желании Angie можно всегда запустить с другим конфигурационным файлом, указав его в параметре командной строки -c файл.
По умолчанию файл называется /etc/angie/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.

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

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

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

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

--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-http_ssl_module разрешает сборку модуля для работы HTTP-сервера по протоколу HTTPS.
По умолчанию модуль не собирается. Для сборки и работы этого модуля нужна библиотека OpenSSL.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

--with-http_secure_link_module разрешает сборку модуля http_secure_link.
По умолчанию модуль не собирается.

--with-http_degradation_module разрешает сборку модуля ngx_http_degradation_module.
По умолчанию модуль не собирается.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

--with-perl=путь задаёт имя исполняемого файла Perl.

--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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

--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 запрещает сборку модуля, позволяющего сохранять рабочее состояние группы вышестоящих серверов в разделяемой памяти.

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

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

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

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

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

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

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

--with-cc-opt=параметры задаёт дополнительные параметры, которые будут добавлены к переменной CFLAGS. При использовании системной библиотеки PCRE во FreeBSD, нужно указать ‑‑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.

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

--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-pcre2 запрещает использование библиотеки PCRE2 вместо исходной библиотеки PCRE.

--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.

--with-libatomic разрешает сборку с библиотекой libatomic_ops.

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

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

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

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

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

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

После конфигурации Angie компилируется и устанавливается с помощью make.