Installing NGINX Controller
Thank you for purchasing NGINX Controller! This guide will help you download, install and run the system. The installation will result in a configured, working system ready to use to monitor and manage your NGINX Plus instances.
NGINX Controller is a web application, composed from a number of Docker containers, and an agent that runs next to your NGINX Plus instances.
To get started you will download and run the installer. This will:
- Perform prerequisite checks on your system and prompt for any missing dependencies
- Prompt you to accept the terms of service agreement for NGINX Controller
- Ask you for a series of parameters including Database, SMTP, Admin user, and FQDN settings
- Place configuration and log files in appropriate file locations on your host system
- Launch NGINX Controller
NGINX Controller uses a number of open source software packages in the product. The full list and the license for each package can be found on the Tech Spec page.
controller-installer-<version>.tar.gzpackage, downloaded via the NGINX Customer Portal.
- A license file for NGINX Controller, accessible at the NGINX Customer Portal.
- A dedicated instance on which to install the NGINX Controller
- Supported Operating Systems and recommended specifications can be found at specs:
- Docker Community Edition (CE) 17.12.0 or later. For links to OS-specific installation instructions, see the Docker CE installation overview.
- Docker Compose 1.18.0 or later. For OS-specific installation instructions, see the table in the Install Compose section of the Compose overview.
bash4.0 or later
- PostgreSQL 9.5
- Database should be accessible from the controller server. You can use a DNS-resolvable name or IP address to connect to the database server (names in /etc/hosts are now allowed)
- Create the user and database
- The following Linux utilities are required by the installation script:
To install the NGINX Controller, perform the following steps.
After downloading the NGINX Controller installer package from NGINX Customer Portal, extract the files.
$ tar xzf controller-installer-<version>.tar.gz
Run the installer.
cd controller-installer ./install.sh
The install script will walk through a series of steps prompting you for input.
qto finish reading it, then
- Database settings (you should configure your own Postgres 9.5 database and add the connection credentials in this step)
- SMTP settings (used to invite new users via email)
- Fully qualified domain name (FQDN) - a resolvable domain name for your NGINX Controller server, used to access NGINX Controller in the browser after installation
- Admin email, password, organization name, first name, and last name
- SSL/TLS certificates for running the web app over HTTPS; the installer can generate self-signed certs if you wish
After a couple of minutes the system will be installed.
Note: Please keep the NGINX Controller instance running.
Log in to NGINX Controller at https://FQDN/login using the admin credentials you defined during the installation process.
Documentation for NGINX Controller is embedded with the product, accessible at https://FQDN/docs
Upload the NGINX Controller license provided by NGINX, Inc. It is accessible at the NGINX Customer Portal.
Navigate to https://FQDN/account/license and click the Upload button to add your license file.
Add the first NGINX Plus instance to monitor and manage, by installing the NGINX Controller agent software on the host where NGINX Plus is running.
Click the New Instance button and follow the instructions in the pop-up window to connect to the NGINX Plus instance and run the provided command. After the agent is installed and initialized, it immediately starts sending metrics back to NGINX Controller, usually within a minute.
The REST API for NGINX Controller is documented at
You are free to delete the installer package that you downloaded and extracted
To start, stop, and restart the NGINX Controller process, use the
helper.sh script found at
./helper.sh start ./helper.sh stop ./helper.sh restart
To update the NGINX Controller software, download and run the corresponding installer package. You also need to update the agent software on each monitored NGINX Plus instance.
Create a backup of the NGINX Controller database.
Download the installer package through the NGINX Customer Portal
Extract the installer files.
$ tar xzf controller-installer-<version>.tar.gz
Run the update script.
$ cd controller-installer $ ./update.sh
Like the installation script, the update script performs a series of steps.
The script will prompt you to confirm that you have backed up the NGINX Controller database. Type the specified phrase.
The update script downloads and starts the updated NGINX Controller software.
If you are currently logged in to the NGINX Controller GUI in a browser, sign out and log in again. (To sign out, click on your username in the upper right‑hand corner and select Sign Out from the drop‑down menu.) For optimal performance, also flush your browser cache.
Nginx Controller Agent:
Agent was installed from Controller Version 2.0.0 or newer: Update the NGINX Controller agent on each monitored NGINX Plus instance, using the OS package management system. The following commands are appropriate for Ubuntu systems.
$ sudo apt-get update $ sudo apt-get install nginx-controller-agent
Agent was installed from Controller Version prior to 2.0.0 and Controller already upgraded to 2.0.0 or newer: Follow the same instructions as if you were installing a new agent, getting the install script from the Controller UI. When asked about replacing the current configuration file answer:
N or O : keep your currently-installed version
To uninstall run
If NGINX Controller is not performing as you expect, verify the following:
The following configuration files are in in /opt/nginx-controller:
- certs/ (for the web app to run over HTTPS)
The output from the
sudo docker pscommand shows the following Docker containers:
In addition, the following log files for components of NGINX Controller are in /var/log/nginx-controller/:
For example, the coreapi files are for the main NGINX Controller API. The receiver files are logs from the agent.