Установка#
Установить Angie можно несколькими способами:
настроив наш репозиторий бинарных пакетов;
скачав Docker-образ (только OSS);
собрав проект из исходного кода по инструкции (только OSS).
Бинарные пакеты#
Чтобы установить и обновлять Angie с помощью пакетного менеджера своего дистрибутива, подключите и настройте репозиторий пакетов Angie.
Поддерживаемые дистрибутивы#
Дистрибутив |
Версии |
Архитектуры |
---|---|---|
9, 8 |
x86-64, arm64 |
|
3.19, 3.18, 3.17, 3.16 |
x86-64, arm64 |
|
10 |
x86-64, arm64 |
|
4.7 |
arm64 |
|
9, 8, 7 |
x86-64, arm64 |
|
12, 11, 10 |
x86-64, arm64 |
|
14, 13 |
x86-64, arm64 |
|
15 |
x86-64, arm64 |
|
9, 8 |
x86-64, arm64 |
|
8 |
x86-64 |
|
9, 8 |
x86-64, arm64 |
|
Хром 12 |
x86-64, arm64 |
|
22.04, 20.04 |
x86-64, arm64 |
Alma, CentOS, Oracle, РЕД ОС, Rocky, РОСА#
Чтобы подключить репозиторий, создайте файл /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
[angie] name=Angie repo baseurl=https://download.angie.software/angie/centos/$releasever/ gpgcheck=1 enabled=1 gpgkey=https://angie.software/keys/angie-signing.gpg.asc
[angie] name=Angie repo baseurl=https://download.angie.software/angie/oracle/$releasever/ gpgcheck=1 enabled=1 gpgkey=https://angie.software/keys/angie-signing.gpg.asc
[angie] name=Angie repo baseurl=https://download.angie.software/angie/redos/$releasever/ gpgcheck=1 enabled=1 gpgkey=https://angie.software/keys/angie-signing.gpg.asc
[angie] name=Angie repo baseurl=https://download.angie.software/angie/rocky/$releasever/ gpgcheck=1 enabled=1 gpgkey=https://angie.software/keys/angie-signing.gpg.asc
[angie] name=Angie repo baseurl=https://download.angie.software/angie/rosa-chrome/$releasever/ gpgcheck=1 enabled=1 gpgkey=https://angie.software/keys/angie-signing.gpg.asc priority=9
[angie] name=Angie repo baseurl=https://download.angie.software/angie/rosa/$releasever/ gpgcheck=1 enabled=1 gpgkey=https://angie.software/keys/angie-signing.gpg.asc priority=9
Установите пакет Angie:
$ sudo yum install -y angie
(Дополнительно) Установите пакеты необходимых вам динамических модулей:
$ sudo yum install -y <ИМЯ ПАКЕТА>
Запустите сервис:
$ sudo systemctl start angie
Чтобы автоматически запускать Angie после перезагрузки сервера:
$ sudo systemctl enable angie
Alpine#
Установите вспомогательные пакеты для подключения репозитория Angie:
$ sudo apk update $ sudo apk add curl ca-certificates
Скачайте открытый ключ репозитория Angie для проверки подлинности пакетов:
$ sudo curl -o /etc/apk/keys/angie-signing.rsa \ https://angie.software/keys/angie-signing.rsa
Подключите репозиторий 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
Обновите индексы репозиториев:
$ sudo apk update
Установите пакет Angie:
$ sudo apk add angie
(Дополнительно) Установите пакеты необходимых вам динамических модулей:
$ sudo apk add <ИМЯ ПАКЕТА>
Запустите сервис:
$ sudo service angie start
Чтобы автоматически запускать Angie после перезагрузки сервера:
$ sudo rc-update add angie
Альт#
Создайте каталог
/etc/ssl/angie/
:$ sudo mkdir -p /etc/ssl/angie/
Установите вспомогательные пакеты для подключения репозитория Angie:
$ sudo apt-get update $ sudo apt-get install -y curl apt-https
Скачайте открытый ключ репозитория Angie для проверки подлинности пакетов:
$ sudo curl -o /etc/ssl/angie/angie-signing.gpg \ https://angie.software/keys/angie-signing.gpg
Импортируйте скачанный ключ репозитория в цепочку доверенных ключей:
$ sudo gpg --no-default-keyring \ --keyring /usr/lib/alt-gpgkeys/pubring.gpg --import /etc/ssl/angie/angie-signing.gpg
Сохраните сигнатуру ключа:
$ 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
Подключите репозиторий 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
$ echo "rpm [angie] https://download.angie.software/angie/altlinux-sp/10/ $(uname -m) main" \ | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null
$ echo "rpm [angie] https://download.angie.software/angie/altlinux-sp/8/ $(uname -m) main" \ | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null
Обновите индексы репозиториев:
$ sudo apt-get update
Установите пакет Angie:
$ sudo apt-get install -y angie
(Дополнительно) Установите пакеты необходимых вам динамических модулей:
$ sudo apt-get install -y <ИМЯ ПАКЕТА>
Запустите сервис:
$ sudo systemctl start angie
Чтобы автоматически запускать Angie после перезагрузки сервера:
$ sudo systemctl enable angie
Astra SE#
Установите вспомогательные пакеты для подключения репозитория Angie:
$ sudo apt-get update $ sudo apt-get install -y ca-certificates curl lsb-release
Скачайте открытый ключ репозитория Angie для проверки подлинности пакетов:
$ sudo curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg \ https://angie.software/keys/angie-signing.gpg
Подключите репозиторий 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
Обновите индексы репозиториев:
$ sudo apt-get update
(Дополнительно) При работе в режиме замкнутой программной среды (ЗПС) установите пакет с ключом для проверки подлинности бинарных файлов Angie:
$ sudo apt-get install -y angie-digsig-key
Обновите ЗПС:
$ sudo update-initramfs -uk all
Затем перезагрузите сервер:
$ sudo shutdown -r now
Установите пакет Angie:
$ sudo apt-get install -y angie
(Дополнительно) Установите пакеты необходимых вам динамических модулей:
$ sudo apt-get install -y <ИМЯ ПАКЕТА>
Debian, Ubuntu#
Установите вспомогательные пакеты для подключения репозитория Angie:
$ sudo apt-get update $ sudo apt-get install -y ca-certificates curl lsb-release
Скачайте открытый ключ репозитория Angie для проверки подлинности пакетов:
$ sudo curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg \ https://angie.software/keys/angie-signing.gpg
Подключите репозиторий Angie:
$ echo "deb https://download.angie.software/angie/debian/ `lsb_release -cs` main" \ | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null
$ echo "deb https://download.angie.software/angie/ubuntu/ `lsb_release -cs` main" \ | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null
Обновите индексы репозиториев:
$ sudo apt-get update
Установите пакет Angie:
$ sudo apt-get install -y angie
(Дополнительно) Установите пакеты необходимых вам динамических модулей:
$ sudo apt-get install -y <ИМЯ ПАКЕТА>
FreeBSD#
Чтобы подключить репозиторий Angie, создайте каталоги:
$ sudo mkdir -p /usr/local/etc/pkg/angie/ /usr/local/etc/pkg/repos/
Чтобы настроить репозиторий, создайте файл /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 }
Скачайте открытый ключ репозитория Angie для проверки подлинности пакетов:
$ sudo curl -o /usr/local/etc/pkg/angie/angie-signing.rsa \ https://angie.software/keys/angie-signing.rsa
Обновите индексы репозиториев:
$ sudo pkg update
Установите пакет Angie:
$ sudo pkg install -y angie
(Дополнительно) Установите пакеты необходимых вам динамических модулей:
$ sudo pkg install -y <ИМЯ ПАКЕТА>
Запустите сервис:
$ sudo service angie start
Чтобы автоматически запускать Angie после перезагрузки сервера:
$ sudo sysrc angie_enable=YES
openSUSE#
Чтобы подключить репозиторий, создайте файл /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
Обновите индексы репозиториев:
$ sudo zypper refresh
Установите пакет Angie:
$ sudo zypper install -y angie
(Дополнительно) Установите пакеты необходимых вам динамических модулей:
$ sudo zypper install -y <ИМЯ ПАКЕТА>
Запустите сервис:
$ sudo systemctl start angie
Чтобы автоматически запускать Angie после перезагрузки сервера:
$ sudo systemctl enable angie
Динамические модули#
Чтобы расширить базовую функциональность Angie, можно добавлять разнообразные динамические модули. Получить их можно в виде готовых пакетов из нашего репозитория.
Модули также можно собирать из исходного кода, компилируя их с соответствующей версией Angie.
Пакеты динамических модулей из дистрибутива Angie:
Добавляет преобразования изображений в форматах JPEG, GIF, PNG и WebP. |
|
angie-module-njs: http_js_module, stream_js_module |
Позволяют использовать язык njs (подмножество JavaScript) в конфигурации Angie соответственно в контекстах http и stream. |
Позволяет писать обработчики location и переменных на Perl, а также вызывать Perl из SSI. |
|
Добавляет фильтр, преобразующий XML-ответ с помощью XSLT-шаблонов. |
Мы также собираем и публикуем в нашем репозитории пакеты следующих сторонних модулей:
Добавляет JWT-аутентификацию клиентов. |
|
Добавляет поддержку LDAP-аутентификации с несколькими серверами. |
|
Добавляет поддержку SPNEGO и GSSAPI. |
|
Добавляет статическое и динамическое Brotli-сжатие ответов. |
|
Позволяет очищать содержимое кэшей FastCGI, прокси, SCGI и uWSGI. |
|
Расширяет поддержку WebDAV методами PROPFIND и OPTIONS. |
|
Служит для динамической блокировки IP-адресов и ее периодического снятия. |
|
Позволяет использовать echo, sleep, time, exec и другие шелл-команды в файле конфигурации. |
|
Расширяет возможности встроенного модуля http_memcached. |
|
Позволяет сохранять в переменных тела ответов на подзапросы. |
|
angie-module-geoip2: http_geoip2, stream_geoip2 |
Добавляет поиск по геоданным в базах GeoIP2 MaxMind 2. |
Позволяет устанавливать и очищать заголовки запросов и ответов. |
|
Позволяет использовать переменные со значениями из пар «ключ-значение». |
|
angie-module-lua: http_lua_module, stream_lua_module |
Позволяют использовать язык Lua в конфигурации Angie соответственно в контекстах http и stream. |
Добавляет коннектор для использования правил ModSecurity. Примечание Пакет нуждается в дополнительной настройке. |
|
Добавляет Nginx Development Kit (NDK) для разработки новых модулей. |
|
Позволяет отправлять данные телеметрии сборщику OpenTelemetry. |
|
Добавляет распределенную OpenTracing-трассировку запросов в Angie; содержит плагины для экспорта данных в Zipkin и DataDog. |
|
Включает непосредственную поддержку баз данных PostgreSQL. |
|
Добавляет протокол Redis 2.0 в HTTP-апстримы. |
|
Добавляет протокол RTMP для стриминга и трансляции видео по запросу. |
|
Добавляет различные директивы set_xxx в модуль rewrite. |
|
Позволяет заменять строки в теле HTTP-ответа по регулярным выражениям. |
|
Помогает бороться с ботами при помощи механизма «вызов-ответ» на основе cookie. |
|
Добавляет кодировку multipart/form-data (RFC 1868) для отправки файлов со стороны клиента, включая возможность возобновления. |
|
Позволяет перепаковывать MP4-файлы для стриминга по HLS, HDS, MSS и DASH. |
|
angie-module-vts (только OSS): module-vts, module-sts, module-stream-vts |
Включает три перечисленных модуля для отслеживания статуса трафика. Примечание Соответствующие им файлы шаблонов устанавливаются сюда: /usr/share/angie-module-vts/status.compress.html
/usr/share/angie-module-vts/status.template.html
/usr/share/angie-module-vts/stream/status.compress.html
/usr/share/angie-module-vts/stream/status.template.html
|
Включает динамическую упаковку ZIP-архивов. |
|
Включает сжатие 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-minimal
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
:
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;"]
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 из пакетов. Если вам всё же нужна своя сборка:
Скачайте архив
.tar.gz
с нашего сайта:$ curl -O https://download.angie.software/files/angie-1.5.0.tar.gz
Распакуйте архив и перейдите в каталог с исходными файлами:
$ tar -xpf angie-1.5.0.tar.gz $ cd angie-1.5.0
Для подготовки используйте скрипт
configure
, который определяет характеристики ОС, где производится сборка, в частности методы, доступные Angie при обработке соединений. После успешного запуска скрипт создаёт файлMakefile
.Перед запуском
configure
изучите и выберите нужные параметры:$ ./configure <ПАРАМЕТРЫ>
Получив
Makefile
, скомпилируйте и установите Angie:$ make $ make install
Параметры configure
#
Общие#
Параметр |
Умолчание |
---|---|
|
|
|
nobody |
|
совпадает с именем непривилегированного пользователя |
|
|
|
objs |
Пути#
Параметр |
Умолчание |
---|---|
|
/usr/local/angie |
|
<префикс>/sbin/angie |
|
<префикс>/modules |
|
<префикс>/conf/angie.conf |
|
<префикс>/logs/error.log |
|
<префикс>/logs/angie.pid |
|
<префикс>/logs/angie.lock |
|
<префикс>/acme_client |
|
<префикс>/logs/access.log |
|
<префикс>/client_body_temp |
|
<префикс>/proxy_temp |
|
<префикс>/fastcgi_temp |
|
<префикс>/uwsgi_temp |
|
<префикс>/scgi_temp |
Функциональность и зависимости#
|
|
|
|
|
|
|
|
|
|
|
|
|
Модули Angie#
http
#
Подключение дополнительных модулей#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Отключение стандартных модулей#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
stream
#
Подключение дополнительных модулей#
|
|
|
|
|
|
Отключение стандартных модулей#
|
|
|
|
|
|
|
|
|
|
|
mail
#
Подключение дополнительных модулей#
|
|
Отключение стандартных модулей#
|
|
|
Параметры компиляции#
|
|
|
|
|
|
|
|
Пример использования параметров#
./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