Manually install any version of NGINX Instance Manager
Follow the steps in this guide to install or upgrade a specific version of NGINX Instance Manager.
To ensure that your NGINX Instance Manager deployment remains secure, follow the recommendations in this section:
- Install NGINX Instance Manager and its modules on a dedicated machine (bare metal, container, cloud, or VM).
- Make sure that no other services are running on the same machine.
- Make sure that the machine is not accessible from the Internet.
- Make sure that the machine is behind a firewall.
To install NGINX Instance Manager, you need the following:
- A trial or paid subscription for NGINX Instance Manager. Sign up for NGINX Instance Manager at MyF5.
- A Linux instance to host the NGINX Instance Manager platform and modules
- NGINX Plus or NGINX OSS installed on the instance hosting NGINX Instance Manager
Allow external systems access by opening network firewalls. NGINX Instance Manager uses port 443
for both gRPC and API/web interfaces.
Follow these steps to download the certificate and private key for NGINX Instance Manager. You’ll need these files when adding the official repository for installing NGINX Instance Manager. You can also use the certificate and key when installing NGINX Plus.
-
On the host where you’re installing NGINX Instance Manager, create the
/etc/ssl/nginx/
directory:sudo mkdir -p /etc/ssl/nginx
-
Download the NGINX Instance Manager
.crt
and.key
files from MyF5 or follow the download link in your trial activation email. -
Move and rename the
.crt
and.key
files:sudo mv <nginx-mgmt-suite-trial.crt> /etc/ssl/nginx/nginx-repo.crt sudo mv <nginx-mgmt-suite-trial.key> /etc/ssl/nginx/nginx-repo.key
The downloaded filenames may vary depending on your subscription type. Modify the commands above accordingly to match the actual filenames.
Install NGINX Open Source or NGINX Plus on the host where you’ll install NGINX Instance Manager. NGINX Instance Manager uses NGINX as a front-end proxy and for managing user access.
-
Installing NGINX and NGINX Plus
If you’re installing NGINX Plus, you can use the
nginx-repo.key
andnginx-repo.crt
that you added in the previous section.
Supported NGINX versions
NGINX Instance Manager supports the following NGINX Open Source and NGINX Plus versions:
NGINX Instance Manager | NGINX OSS | NGINX Plus |
---|---|---|
2.18.0 and later | 1.18–1.28.0 | R31–R34 |
2.16.0–2.17.x | 1.18–1.25.1 | R31–R32 |
2.7.0–2.15.x | 1.18–1.25.1 | R21–R30 |
2.0.0–2.6.0 | 1.18–1.21.6 | R21–R27 |
Supported Linux distributions
The following table lists the Linux distributions supported by NGINX Instance Manager and NGINX App Protect:
Distribution | Version | Architecture | NGINX Instance Manager Support | NGINX App Protect Support |
---|---|---|---|---|
Amazon Linux | 2 LTS | x86_64 | Supported | Support discontinued as of 2.18.0 |
CentOS | 7.4 and later in the 7.x family | x86_64 | Support discontinued as of 2.17.0 | Supported |
Debian | 11 12 |
x86_64 x86_64 |
Supported Supported on 2.13.0+ |
Supported Supported |
Oracle Linux | 7.4 and later in the 7.x family 8.0 and later in the 8.x family |
x86_64 x86_64 |
Supported Supported on 2.6.0+ |
Supported Supported |
RHEL | 7.4 and later in the 7.x family 8.x and later in the 8.x family 9.x and later in the 9.x family |
x86_64 x86_64 x86_64 |
Support discontinued as of 2.17.0 Supported Supported on 2.6.0+ |
Supported Supported Supported |
Ubuntu | 20.04 22.04 24.04 |
x86_64 x86_64 x86_64 |
Supported Supported on 2.3.0+ Supported on 2.18.0+ |
Supported Supported Supported |
Make sure to review the Technical Specifications guide for sizing requirements and other recommended specs.
NGINX Instance Manager uses ClickHouse to store metrics, events, alerts, and configuration data.
Starting in version 2.20.0, you can run NGINX Instance Manager in Lightweight mode, which skips the ClickHouse installation entirely. This setup works well if you don’t need monitoring data or want to reduce system requirements. It also avoids the effort of managing a metrics database. You can add ClickHouse later if your needs change.
If you don’t need to store metrics, you can skip installing ClickHouse. But you must use NGINX Agent version 2.41.1 or later, and you must disable metrics collection in the /etc/nms/nms.conf
and /etc/nms-sm.conf.yaml
files.
For instructions, see Disable metrics collection.
NGINX Instance Manager uses ClickHouse to store metrics, events, alerts, and configuration settings.
If you install ClickHouse and choose to set a password (the default is an empty string), you must add it to the clickhouse.password
setting in the /etc/nms/nms.conf
file. If the password is missing or incorrect, NGINX Instance Manager will not start.
For instructions and additional configuration options, including TLS settings, see Configure ClickHouse.
NGINX Instance Manager requires ClickHouse version 24.8.12.28 or later.
Follow these steps to install and enable ClickHouse on supported Linux distributions.
-
First, set up the repository.
-
For RPM-based systems (CentOS, RHEL):
sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
-
For Debian-based systems (Debian, Ubuntu):
sudo apt-get install -y apt-transport-https ca-certificates dirmngr GNUPGHOME=$(mktemp -d) sudo GNUPGHOME="$GNUPGHOME" gpg --no-default-keyring --keyring /usr/share/keyrings/clickhouse-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 8919F6BD2B48D754 sudo rm -r "$GNUPGHOME" sudo chmod +r /usr/share/keyrings/clickhouse-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/clickhouse-keyring.gpg] https://packages.clickhouse.com/deb lts main" | sudo tee /etc/apt/sources.list.d/clickhouse.list sudo apt-get update
-
-
Next, install the ClickHouse server and client:
-
For RPM-based systems (CentOS, RHEL):
sudo yum install -y clickhouse-server clickhouse-client
-
For Debian-based systems (Debian, Ubuntu):
sudo apt-get install -y clickhouse-server clickhouse-client
-
-
Then, enable the ClickHouse service so it starts automatically on reboot:
sudo systemctl enable clickhouse-server
-
Start the ClickHouse service:
sudo systemctl start clickhouse-server
-
Finally, confirm the service is running:
sudo systemctl status clickhouse-server
NGINX Instance Manager uses the following default values for ClickHouse. To change these values, see the Configure ClickHouse guide.
Configuration | Default | Notes |
---|---|---|
clickhouse.enable | true | Set to false to disable metrics collection and run NGINX Instance Manager in lightweight mode. Requires a service restart. |
clickhouse.address | tcp://localhost:9000 | The address of the ClickHouse database. |
clickhouse.username | The username NGINX Instance Manager uses to connect to ClickHouse, if authentication is enabled. | |
clickhouse.password | The password for the specified ClickHouse user. | |
clickhouse.tls_mode | false | Set to true to enable TLS for the ClickHouse connection. This setting will be deprecated in a future release. Use the clickhouse.tls section instead. |
clickhouse.tls.address | tcp://localhost:9440 | The address NGINX Instance Manager uses to connect to ClickHouse over TLS. Format: <ip-address>:<port> . |
clickhouse.tls.skip_verify | false | Set to true to skip TLS certificate verification. Use only for self-signed certificates in non-production environments. |
clickhouse.tls.key_path | Path to the client TLS key file in PEM format. Required for client authentication. | |
clickhouse.tls.cert_path | Path to the client TLS certificate file in PEM format. Required for client authentication. | |
clickhouse.tls.ca_path | /etc/ssl/certs/ca-certificates.crt | Path to the system Certificate Authority used to verify the server certificate. The default path works for Ubuntu and Debian. Use a CA bundle appropriate to your system. See TLS configuration for details. |
To install NGINX Instance Manager, you need to add the official repository to pull the pre-compiled deb
and rpm
packages from.
Select the tab matching your Linux distribution, then follow the instructions to add the NGINX Instance Manager repository.
Add the NGINX Instance Manager repository:
-
CentOS/RHEL
sudo wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/nms.repo
-
RHEL 8: If you’re installing on RHEL 8 and using the distro’s NGINX, run the following commands to use the new version of NGINX (1.20 at the time of this update):
sudo yum module disable nginx:1.14 sudo yum module enable nginx:1.20
-
-
Amazon Linux 2
sudo wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/nms-amazon2.repo
- Add the NGINX signing key:
wget -qO - https://cs.nginx.com/static/keys/nginx_signing.key \
| gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
-
Add the NGINX Instance Manager repository:
- Debian
printf "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \ https://pkgs.nginx.com/nms/debian $(lsb_release -cs) nginx-plus\n" | \ sudo tee /etc/apt/sources.list.d/nms.list sudo wget -q -O /etc/apt/apt.conf.d/90pkgs-nginx \ https://cs.nginx.com/static/files/90pkgs-nginx
- Ubuntu
printf "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \ https://pkgs.nginx.com/nms/ubuntu $(lsb_release -cs) nginx-plus\n" | \ sudo tee /etc/apt/sources.list.d/nms.list sudo wget -q -O /etc/apt/apt.conf.d/90pkgs-nginx \ https://cs.nginx.com/static/files/90pkgs-nginx
-
To install the latest version of Instance Manager, run the following command:
sudo yum install -y nms-instance-manager
IMPORTANT! The Instance Manager’s administrator username (default is
admin
) and generated password are displayed in the terminal during installation. You should make a note of the password and store it securely.
-
To install the latest version of Instance Manager, run the following commands:
sudo apt-get update sudo apt-get install -y nms-instance-manager
IMPORTANT! The Instance Manager’s administrator username (default is
admin
) and generated password are displayed in the terminal during installation. You should make a note of the password and store it securely.
-
Enable and start the NGINX Instance Manager platform services:
sudo systemctl enable nms nms-core nms-dpm nms-ingestion nms-integrations --now
NGINX Instance Manager components started this way run by default as the non-root
nms
user inside thenms
group, both of which are created during installation. -
Restart the NGINX web server:
sudo systemctl restart nginx
If you installed ClickHouse and set a password (the default is an empty string), you must add it to the clickhouse.password
setting in the /etc/nms/nms.conf
file after installing NGINX Instance Manager. If the password is missing or incorrect, NGINX Instance Manager will not start.
You can also configure additional ClickHouse settings in the same section:
clickhouse.username
– the username used to connect to ClickHouseclickhouse.address
– the address of the ClickHouse server (default istcp://localhost:9000
)clickhouse.tls_mode
– set totrue
to enable TLS- TLS certificate settings, such as:
clickhouse.tls.cert_path
clickhouse.tls.key_path
clickhouse.tls.ca_path
clickhouse.tls.skip_verify
For more details, see Configure ClickHouse.
NGINX Instance Manager can use Vault as a datastore for secrets.
To install and enable Vault, follow these steps:
- Follow Vault’s instructions to install Vault 1.8.8 or later for your distribution.
- Ensure you’re running Vault in a production-hardened environment.
- After installing NGINX Instance Manager, follow the steps to configure Vault for storing secrets.
SELinux helps secure your deployment by enforcing mandatory access control policies.
If you use SELinux, follow the steps in the Configure SELinux guide to restore SELinux contexts (restorecon
) for the files and directories related to NGINX Instance Manager.
To access the NGINX Instance Manager web interface, open a web browser and go to https://<NMS_FQDN>
, replacing <NMS_FQDN>
with the Fully Qualified Domain Name of your NGINX Instance Manager host.
The default administrator username is admin
, and the generated password was displayed in the terminal during installation. If you’d like to change this password, refer to the “Set or Change User Passwords section in the Basic Authentication topic.
A valid license is required to make full use of all the features in NGINX Instance Manager.
Refer to the Add a License topic for instructions on how to download and apply a trial license, subscription license, or Flexible Consumption Program license.
-
To upgrade to the latest version of the Instance Manager, run the following command:
sudo yum update -y nms-instance-manager
-
To upgrade to the latest version of the Instance Manager, run the following command:
sudo apt-get update && \ sudo apt-get install -y --only-upgrade nms-instance-manager
-
Restart the NGINX Instance Manager platform services:
sudo systemctl restart nms
NGINX Instance Manager components started this way run by default as the non-root
nms
user inside thenms
group, both of which are created during installation. -
Restart the NGINX web server:
sudo systemctl restart nginx
-
(Optional) If you use SELinux, follow the steps in the Configure SELinux guide to restore the default SELinux labels (
restorecon
) for the files and directories related to NGINX Management suite.