Installation#
You can install Angie by:
Setting up our binary repo
Downloading a Docker image (OSS only)
Building it from source (OSS only)
Binary Packages#
To install and update Angie PRO using your distro’s package manager, add and set up the Angie PRO package repository.
Supported Distributions#
Distro |
Versions |
Architectures |
---|---|---|
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 |
|
Chrome 12 |
x86-64, arm64 |
|
24.04, 22.04, 20.04 |
x86-64, arm64 |
Alma, CentOS, Oracle, RED OS, Rocky, ROSA#
Create the /etc/ssl/angie directory:
$ sudo mkdir -p /etc/ssl/angie/
Transfer the files you received with your license:
File Type
Original Name
Where
Certificate
angie-repo.crt
/etc/ssl/angie/angie-repo.crt
Private Key
angie-repo.key
/etc/ssl/angie/angie-repo.key
Hint
If you have the license but not these files, email us at support@angie.software.
To add the repo, create the following file named /etc/yum.repos.d/nginx.repo:
[angie-pro] name=Angie PRO repo baseurl=https://download.angie.software/angie-pro/almalinux/$releasever/ sslclientcert=/etc/ssl/angie/angie-repo.crt sslclientkey=/etc/ssl/angie/angie-repo.key gpgcheck=1 enabled=1 gpgkey=https://angie.software/keys/angie-signing.gpg.asc
[angie-pro] name=Angie PRO repo baseurl=https://download.angie.software/angie-pro/centos/$releasever/ sslclientcert=/etc/ssl/angie/angie-repo.crt sslclientkey=/etc/ssl/angie/angie-repo.key gpgcheck=1 enabled=1 gpgkey=https://angie.software/keys/angie-signing.gpg.asc
[angie-pro] name=Angie PRO repo baseurl=https://download.angie.software/angie-pro/oracle/$releasever/ sslclientcert=/etc/ssl/angie/angie-repo.crt sslclientkey=/etc/ssl/angie/angie-repo.key gpgcheck=1 enabled=1 gpgkey=https://angie.software/keys/angie-signing.gpg.asc
[angie-pro] name=Angie PRO repo baseurl=https://download.angie.software/angie-pro/redos/$releasever/ sslclientcert=/etc/ssl/angie/angie-repo.crt sslclientkey=/etc/ssl/angie/angie-repo.key gpgcheck=1 enabled=1 gpgkey=https://angie.software/keys/angie-signing.gpg.asc
[angie-pro] name=Angie PRO repo baseurl=https://download.angie.software/angie-pro/rocky/$releasever/ sslclientcert=/etc/ssl/angie/angie-repo.crt sslclientkey=/etc/ssl/angie/angie-repo.key gpgcheck=1 enabled=1 gpgkey=https://angie.software/keys/angie-signing.gpg.asc
[angie-pro] name=Angie PRO repo baseurl=https://download.angie.software/angie-pro/rosa-chrome/$releasever/ sslclientcert=/etc/ssl/angie/angie-repo.crt sslclientkey=/etc/ssl/angie/angie-repo.key gpgcheck=1 enabled=1 gpgkey=https://angie.software/keys/angie-signing.gpg.asc
[angie-pro] name=Angie PRO repo baseurl=https://download.angie.software/angie-pro/rosa/$releasever/ sslclientcert=/etc/ssl/angie/angie-repo.crt sslclientkey=/etc/ssl/angie/angie-repo.key gpgcheck=1 enabled=1 gpgkey=https://angie.software/keys/angie-signing.gpg.asc
Install the Angie PRO package:
$ sudo yum install -y angie-pro
(Optional) Install the dynamic module packages you need:
$ sudo yum install -y <PACKAGE NAME>
Start the service:
$ sudo systemctl start angie
To autostart Angie PRO after server reboot:
$ sudo systemctl enable angie
Alpine#
Transfer the files you received with your license:
File Type
Original Name
Where
Certificate
angie-repo.crt
/etc/apk/cert.pem
Private Key
angie-repo.key
/etc/apk/cert.key
Hint
If you have the license but not these files, email us at support@angie.software.
Install the prerequisites for adding the Angie PRO repo:
$ sudo apk update $ sudo apk add curl ca-certificates
Download the public key of the Angie PRO repo for package verification:
$ sudo curl -o /etc/apk/keys/angie-signing.rsa \ https://angie.software/keys/angie-signing.rsa
Add the Angie PRO repo:
$ echo "https://download.angie.software/angie-pro/alpine/v$(egrep -o \ '[0-9]+\.[0-9]+' /etc/alpine-release)/main" \ | sudo tee -a /etc/apk/repositories > /dev/null
Update the repo indexes:
$ sudo apk update
Install the Angie PRO package:
$ sudo apk add angie-pro
(Optional) Install the dynamic module packages you need:
$ sudo apk add <PACKAGE NAME>
Start the service:
$ sudo service angie start
To autostart Angie PRO on server reboot:
$ sudo rc-update add angie
ALT Linux#
Create the
/etc/ssl/angie
directory:$ sudo mkdir -p /etc/ssl/angie/
Transfer the files you received with your license:
File Type
Original Name
Where
Certificate
angie-repo.crt
/etc/ssl/angie/angie-repo.crt
Private Key
angie-repo.key
/etc/ssl/angie/angie-repo.key
Hint
If you have the license but not these files, email us at support@angie.software.
Download the public key of the Angie PRO repo for package verification:
$ curl -o ~/angie-signing.gpg https://angie.software/keys/angie-signing.gpg && \ sudo gpg --no-default-keyring --keyring /usr/lib/alt-gpgkeys/pubring.gpg --import ~/angie-signing.gpg
Save the key’s signature:
$ echo 'simple-key "angie" { Fingerprint "EB8EAF3D4EF1B1ECF34865A2617AB978CB849A76"; Name "Angie PRO (Signing Key) <devops@tech.wbsrv.ru>"; }' | sudo tee /etc/apt/vendors.list.d/angie.list > /dev/null
Add the Angie PRO repo:
$ echo "rpm [angie-pro] https://download.angie.software/angie-pro/altlinux/10/ $(uname -m) main" \ | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null
$ echo "rpm [angie-pro] https://download.angie.software/angie-pro/altlinux-sp/10/ $(uname -m) main" \ | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null
$ echo "rpm [angie-pro] https://download.angie.software/angie-pro/altlinux-sp/8/ $(uname -m) main" \ | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null
Save an
apt
configuration file for the Angie PRO repo as/etc/apt/apt.conf.d
:$ ( echo 'Acquire::https::Verify-Peer "true";'; echo 'Acquire::https::Verify-Host "true";'; echo 'Acquire::https::SslCert "/etc/ssl/angie/angie-repo.crt";'; echo 'Acquire::https::SslKey "/etc/ssl/angie/angie-repo.key";'; ) | sudo tee -a /etc/apt/apt.conf >/dev/null
Update the repo indexes:
$ sudo apt-get update
Install the Angie PRO package:
$ sudo apt-get install -y angie-pro
(Optional) Install the dynamic module packages you need:
$ sudo apt-get install -y <PACKAGE NAME>
Start the service:
$ sudo systemctl start angie
To autostart Angie PRO on server reboot:
$ sudo systemctl enable angie
Astra SE#
Create the /etc/ssl/angie/ directory:
$ sudo mkdir -p /etc/ssl/angie/
Transfer the files you received with your license:
File Type
Original Name
Where
Certificate
angie-repo.crt
/etc/ssl/angie/angie-repo.crt
Private Key
angie-repo.key
/etc/ssl/angie/angie-repo.key
Hint
If you have the license but not these files, email us at support@angie.software.
Restrict the access to the directory and the files:
$ sudo chown -R _apt:nogroup /etc/ssl/angie/
Install the prerequisites for adding the Angie PRO repo:
$ sudo apt-get update $ sudo apt-get install -y apt-transport-https lsb-release \ ca-certificates curl gnupg2
Download the public key of the Angie PRO repo for package verification:
$ sudo curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg \ https://angie.software/keys/angie-signing.gpg
Add the Angie PRO repo:
$ echo "deb https://download.angie.software/angie-pro/astra-se/$(egrep -o \ '[0-9]+\.[0-9]+' /etc/astra_version) unstable main" \ | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null
To configure the repo, create a file named /etc/apt/apt.conf.d/90download-angie with the following contents:
Acquire::https::download.angie.software::Verify-Peer "true"; Acquire::https::download.angie.software::Verify-Host "true"; Acquire::https::download.angie.software::SslCert "/etc/ssl/angie/angie-repo.crt"; Acquire::https::download.angie.software::SslKey "/etc/ssl/angie/angie-repo.key";
Update the repo indexes:
$ sudo apt-get update
(Optional) When running a Closed Software Environment (CSE), install the key package for Angie PRO binary verification:
$ sudo apt-get install -y angie-digsig-key
Update the CSE:
$ sudo update-initramfs -uk all
Then restart the server:
$ sudo shutdown -r now
Install the Angie PRO package:
$ sudo apt-get install -y angie-pro
(Optional) Install the dynamic module packages you need:
$ sudo apt-get install -y <PACKAGE NAME>
Debian, Ubuntu#
Create the /etc/ssl/angie/ directory:
$ sudo mkdir -p /etc/ssl/angie/
Transfer the files you received with your license:
File Type
Original Name
Where
Certificate
angie-repo.crt
/etc/ssl/angie/angie-repo.crt
Private Key
angie-repo.key
/etc/ssl/angie/angie-repo.key
Hint
If you have the license but not these files, email us at support@angie.software.
Restrict the access to the directory and the files:
$ sudo chown -R _apt:nogroup /etc/ssl/angie/
Install the prerequisites for adding the Angie PRO repo:
$ sudo apt-get update $ sudo apt-get install -y apt-transport-https lsb-release \ ca-certificates curl gnupg2
Download the public key of the Angie PRO repo for package verification:
$ sudo curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg \ https://angie.software/keys/angie-signing.gpg
Add the Angie PRO repo:
$ echo "deb https://download.angie.software/angie-pro/debian/ `lsb_release -cs` main" \ | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null
$ echo "deb https://download.angie.software/angie-pro/ubuntu/ `lsb_release -cs` main" \ | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null
To configure the repo, create a file named /etc/apt/apt.conf.d/90download-angie with the following contents:
Acquire::https::download.angie.software::Verify-Peer "true"; Acquire::https::download.angie.software::Verify-Host "true"; Acquire::https::download.angie.software::SslCert "/etc/ssl/angie/angie-repo.crt"; Acquire::https::download.angie.software::SslKey "/etc/ssl/angie/angie-repo.key";
Update the repo indexes:
$ sudo apt-get update
Install the Angie PRO package:
$ sudo apt-get install -y angie-pro
(Optional) Install the dynamic module packages you need:
$ sudo apt-get install -y <PACKAGE NAME>
FreeBSD#
To add the Angie PRO repo, create these directories:
$ sudo mkdir -p /usr/local/etc/pkg/angie/ /usr/local/etc/pkg/repos/
To configure the repo, create a file named /usr/local/etc/pkg/repos/angie.conf with the following contents:
angie: { url: "https://download.angie.software/angie-pro/freebsd/${VERSION_MAJOR}/${ARCH}", signature_type: "pubkey", pubkey: "/usr/local/etc/pkg/angie/angie-signing.rsa", enabled: yes }
Download the public key of the Angie PRO repo for package verification:
$ sudo curl -o /usr/local/etc/pkg/angie/angie-signing.rsa \ https://angie.software/keys/angie-signing.rsa
Transfer the files you received with your license:
File Type
Original Name
Where
Certificate
angie-repo.crt
/usr/local/etc/pkg/angie/angie-repo.crt
Private Key
angie-repo.key
/usr/local/etc/pkg/angie/angie-repo.key
Hint
If you have the license but not these files, email us at support@angie.software.
Add the certificate and the key to the package manager’s configuration:
$ echo ' PKG_ENV: { SSL_CLIENT_CERT_FILE: "/usr/local/etc/pkg/angie/angie-repo.crt", SSL_CLIENT_KEY_FILE: "/usr/local/etc/pkg/angie/angie-repo.key" }' | sudo tee -a /usr/local/etc/pkg.conf > /dev/null
Update the repo indexes:
$ sudo pkg update
Install the Angie PRO package:
$ sudo pkg install -y angie-pro
(Optional) Install the dynamic module packages you need:
$ sudo pkg install -y <PACKAGE NAME>
Start the service:
$ sudo service angie start
To autostart Angie PRO on server reboot:
$ sudo sysrc angie_enable=YES
openSUSE#
Create the
/etc/ssl/angie
directory:$ sudo mkdir -p /etc/ssl/angie/
Transfer the files you received with your license:
File Type
Original Name
Where
Certificate
angie-repo.crt
/etc/ssl/angie/angie-repo.crt
Private Key
angie-repo.key
/etc/ssl/angie/angie-repo.key
And bundle them into
/etc/ssl/angie/angie-repo-bundle.crt
:$ cat /etc/ssl/angie/angie-repo.crt /etc/ssl/angie/angie-repo.key | \ sudo tee -a /etc/ssl/angie/angie-repo-bundle.crt > /dev/null
Hint
If you have the license but not these files, email us at support@angie.software.
To add the repo, create a file named /etc/zypp/repos.d/angie.repo with the following contents:
[angie-pro] enabled=1 autorefresh=1 baseurl=https://download.angie.software/angie-pro/opensuse/$releasever_major?ssl_clientcert=/etc/ssl/angie/angie-repo-bundle.crt&ssl_verify=peer gpgcheck=1 gpgkey=https://angie.software/keys/angie-signing.gpg.asc
Update the repo indexes:
$ sudo zypper refresh
Install the Angie PRO package:
$ sudo zypper install -y angie-pro
(Optional) Install the dynamic module packages you need:
$ sudo zypper install -y <PACKAGE NAME>
Start the service:
$ sudo systemctl start angie
To autostart Angie PRO after server reboot:
$ sudo systemctl enable angie
Dynamic Modules#
To extend Angie PRO’s basic functionality, you can add a variety of dynamic modules, available as ready-made packages from our repository.
Modules can also be built from source code; compile them against the corresponding Angie PRO version.
Dynamic module packages distributed as part of Angie PRO:
Adds a filter to transform .jpeg, .gif, .png, and .webp images. |
|
angie-pro-module-njs: http_js_module, stream_js_module |
Enable using njs (a JavaScript subset) in Angie PRO configuration in the http and stream contexts, respectively. |
Enables writing location and variable handlers in Perl, and also invoking Perl from SSI. |
|
Adds a filter to transform XML responses with XSLT stylesheets. |
We also build and publish in our repository the following third-party module packages:
Adds client JWT authentication. |
|
Adds support for authentication against multiple LDAP servers. |
|
Adds SPNEGO, GSSAPI support. |
|
Enables Brotli for dynamic and static response compression. |
|
Enables purging FastCGI, proxy, SCGI, and uWSGI cache contents. |
|
Extends WebDAV method support, adding PROPFIND and OPTIONS. |
|
Used to dynamically lock IPs and release them periodically. |
|
Enables echo, sleep, time, exec, and other shell-style commands in the configuration file. |
|
Enhances the capabilities of the built-in http_memcached module. |
|
Enables capturing subrequest response bodies in variables. |
|
angie-pro-module-geoip2: http_geoip2, stream_geoip2 |
Enables geodata lookup in the MaxMind GeoIP2 database. |
Enables setting and clearing input and output headers. |
|
Enables variables created from key-value pairs. |
|
angie-pro-module-lua: http_lua_module, stream_lua_module |
Enable using Lua in Angie PRO configuration in the http and stream contexts, respectively. |
Adds a connector that enables ModSecurity rules. Note The package needs extra setup. |
|
Adds Nginx Development Kit (NDK) for module development. |
|
Enables sending telemetry data to an OpenTelemetry collector. |
|
Adds distributed tracing of Angie PRO requests via OpenTracing; includes data export plugins for Zipkin and DataDog. |
|
Enables direct communication with PostgreSQL databases. |
|
Enables Redis 2.0 for HTTP upstreams. |
|
Enables RTMP for live streaming and video on demand. |
|
Adds various set_xxx directives to the rewrite module. |
|
Enables regex string substitutions in the HTTP response body. |
|
Enables robot mitigation using a cookie-based challenge-response mechanism. |
|
Adds the multipart/form-data encoding (RFC 1867) for file upload, enabling resumable uploads. |
|
Enables repackaging .mp4 files for HLS, HDS, MSS, and DASH streaming. |
|
angie-pro-module-vts (OSS only): module-vts <https://github.com/vozlt/nginx-module-vts>, module-sts <https://github.com/vozlt/nginx-module-sts>, module-stream-vts <https://github.com/vozlt/nginx-module-stream-sts> |
Packs the three listed modules that monitor traffic status. Note Their respective template files are installed as follows: /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
|
Enables assembling ZIP archives dynamically. |
|
Enables Zstandard compression. |
To use an installed module in the configuration, load it with the load_module directive.
Docker Images (OSS)#
To run Angie in a Docker container, use an image from our registry:
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
To start a container with Angie at port 8080,
enabling read-only access to the /var/www/
static file directory
and the angie.conf
file in the current working directory:
$ 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
Setups like this can be used for local development and configuration.
Also, you can build your own image
based on a supported distro,
adding the Angie layer with packages
or source code.
A couple of such Dockerfile
examples:
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;"]
To build a myangie
image in the Dockerfile
’s directory
and start a container in the same way as described above:
$ 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
Building From Source (OSS)#
We recommend installing Angie from packages. If you still need your own build:
Download the
.tar.gz
archive from our website:$ curl -O https://download.angie.software/files/angie-1.5.0.tar.gz
Unpack the sources and enter the code directory:
$ tar -xpf angie-1.5.0.tar.gz $ cd angie-1.5.0
To prepare the build, use the
configure
script to determine the specific traits of the OS where the build occurs, in particular, the methods that Angie can use to handle connections. After a successful run, the script creates aMakefile
.Before running
configure
, browse the options to choose the optimal layout:$ ./configure <OPTIONS>
When
Makefile
is ready, build and install Angie:$ make $ make install
configure
Options#
General#
Parameter |
Default |
---|---|
|
|
|
nobody |
|
is set to the name of an unprivileged user |
|
|
|
objs |
Paths#
Parameter |
Default |
---|---|
|
/usr/local/angie |
|
<prefix>/sbin/angie |
|
<prefix>/modules |
|
<prefix>/conf/angie.conf |
|
<prefix>/logs/error.log |
|
<prefix>/logs/angie.pid |
|
<prefix>/logs/angie.lock |
|
<prefix>/acme_client |
|
<prefix>/logs/access.log |
|
<prefix>/client_body_temp |
|
<prefix>/proxy_temp |
|
<prefix>/fastcgi_temp |
|
<prefix>/uwsgi_temp |
|
<prefix>/scgi_temp |
Features and dependencies#
|
|
|
|
|
|
|
|
|
|
|
|
|
Angie Modules#
http
#
Enabling additional modules#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Disable standard modules#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
stream
#
Enable additional modules#
|
|
|
|
|
|
Disable standard modules#
|
|
|
|
|
|
|
|
|
|
|
mail
#
Enable additional modules#
|
|
Disable standard modules#
|
|
|
Build options#
|
|
|
|
|
|
|
|
|
Example of parameters usage#
./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