Установка#
Установить Angie можно несколькими способами:
настроив наш репозиторий бинарных пакетов;
скачав Docker-образ;
собрав проект из исходного кода.
Бинарные пакеты#
Чтобы установить и обновлять Angie с помощью пакетного менеджера своего дистрибутива, подключите и настройте репозиторий пакетов Angie.
Поддерживаемые дистрибутивы#
Дистрибутив |
Версии |
Архитектуры |
---|---|---|
9, 8 |
x86-64, arm64 |
|
3.18, 3.17, 3.16, 3.15 |
x86-64, arm64 |
|
10 |
x86-64, arm64 |
|
4.7 |
arm64 |
|
9, 8 |
x86-64, arm64 |
|
12, 11, 10 |
x86-64, arm64 |
|
13, 12 |
x86-64 |
|
9, 8 |
x86-64, arm64 |
|
7.3 |
x86-64, arm64 |
|
9, 8 |
x86-64, arm64 |
|
23.04, 22.04, 20.04 |
x86-64, arm64 |
AlmaLinux, CentOS, Oracle Linux, РЕД ОС, Rocky Linux#
Чтобы подключить репозиторий, создайте файл /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/73/ 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:
$ 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
Динамические модули#
Чтобы расширить базовую функциональность 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-аутентификацию клиентов. |
|
Добавляет поддержку SPNEGO и GSSAPI. |
|
Добавляет статическое и динамическое Brotli-сжатие ответов. |
|
Позволяет очищать содержимое кэшей FastCGI, прокси, SCGI и uWSGI. |
|
Расширяет поддержку WebDAV методами PROPFIND и OPTIONS. |
|
Позволяет использовать echo, sleep, time, exec и другие шелл-команды в файле конфигурации. |
|
Расширяет возможности встроенного модуля Модуль http_memcached. |
|
Позволяет сохранять в переменных тела ответов на подзапросы. |
|
angie-module-geoip2: http_geoip2, stream_geoip2 |
Добавляет поиск по геоданным в базах GeoIP2 MaxMind 2. |
Позволяет устанавливать и очищать заголовки запросов и ответов. |
|
Добавляет проверку валидности JWT. |
|
Позволяет использовать переменные со значениями из пар key-value. |
|
angie-module-lua: http_lua_module, stream_lua_module |
Позволяют использовать язык Lua в конфигурации Angie соответственно в контекстах http и stream. |
Добавляет Nginx Development Kit (NDK) для разработки новых модулей. |
|
Включает непосредственную поддержку баз данных PostgreSQL. |
|
Добавляет протокол Redis 2.0 в HTTP-апстримы. |
|
Добавляет протокол RTMP для стриминга и трансляции видео по запросу. |
|
Добавляет различные директивы set_xxx в модуль rewrite. |
|
Позволяет заменять строки в теле HTTP-ответа по регулярным выражениям. |
|
Добавляет кодировку multipart/form-data (RFC 1868) для отправки файлов со стороны клиента, включая возможность возобновления. |
|
Позволяет перепаковывать MP4-файлы для стриминга по HLS, HDS, MSS и DASH. |
Чтобы применить установленный модуль в конфигурации, загрузите его с помощью директивы load_module.
Docker-образы#
Для запуска Angie в контейнере Docker используйте образы из нашего реестра:
docker.angie.software/angie
docker.angie.software/angie:latest
docker.angie.software/angie:1.3.0
docker.angie.software/angie:1.3.0-alpine
docker.angie.software/angie:1.3.0-centos
docker.angie.software/angie:1.3.0-debian
docker.angie.software/angie:1.3.0-oracle
docker.angie.software/angie:1.3.0-rocky
docker.angie.software/angie:1.3.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.3.0
Date: 19.09.2023 10:42:54 GMT
Content-Type: text/html
Content-Length: 543
Last-Modified: Fri, 28 Jul 2023 14:12:23 GMT
Connection: keep-alive
ETag: "64c3ccc7-21f"
Accept-Ranges: bytes
Подобная конфигурация подойдёт для локальной разработки и настройки.
Также можно самостоятельно определить образ
на основе поддерживаемого дистрибутива,
добавив слой Angie из пакетов
или исходного кода.
Примеры соответствующих файлов Dockerfile
:
FROM debian:12
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;"]
FROM alpine:3.18
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;"]
Чтобы собрать образ 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
Сборка из исходных файлов#
Рекомендуется устанавливать Angie из бинарных пакетов. Если по каким-то причинам вам нужна собственная сборка, исходные файлы можно получить:
Скачать архив нужного релиза
.tar.gz с сайта
$ curl -O https://download.angie.software/files/angie-1.3.0.tar.gz
Исходные файлы релиза можно также скачать с GitHub
Распаковать архив:
$ tar -xpf angie-1.3.0.tar.gz
Сборка производится в директории с исходными файлами
$ cd angie-1.3.0
Сборка подготавливается скриптом configure. Он определяет особенности системы и, в частности, методы, которые Angie может использовать для обработки соединений. В конце концов он создаёт Makefile.
Параметры скрипта configure
После конфигурации Angie компилируется и устанавливается с помощью make
$ ./configure
$ make
$ make install
Параметры скрипта configure#
Общие#
Параметр |
Умолчание |
---|---|
|
|
|
nobody |
|
совпадает с именем непривилегированного пользователя |
|
|
|
objs |
Пути#
Параметр |
Умолчание |
---|---|
|
/usr/local/angie |
|
префикс/sbin/angie |
|
префикс/modules |
|
префикс/conf/angie.conf |
|
префикс/logs/error.log |
|
префикс/logs/angie.pid |
|
префикс/logs/angie.lock |
|
префикс/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.2.13