How To Install Nginx on Ubuntu 16.04

how-to-install-nginx-on-ubuntu-16-04-1-2537424

Introduction

 

Nginx is one of the most popular open source web server software. It is widely used for load balancing, reverse proxying, media streaming and much more. Nginx is the only all‑in‑on high-performance HTTP server, designed to serve high volume of concurrent connections, as an alternative to Apache web server. Today Nginx is installed on more then 450 million servers world wide, and is used by one of the highest traffic website on the web like Dropbox, Zynga games, Netflix. There is no question that Nginx is the best-in-class web server and application delivery solution. In this guide we will show you how to install Nginx on Ubuntu 16.40. Installing Nginx on Ubuntu 16.04, is an easy task, just carefully follow the steps bellow and your should have Nginx installed on your Ubuntu server in less then 10 min. This guide should work on other Ubuntu based Linux VPS systems as well but was tested and written for Ubuntu 16.04 VPS. Let’s get started.

Install Nginx

Nginx is available in the Ubuntu package repositories simple. First update the apt cache with the following command:

sudo apt update

and install Nginx by issuing:

sudo apt install nginx

Once the instillation is completed Nginx will be automatically started.
You can make sure that Nginx service is running with the following command:

sudo systemctl status nginx

The output should look like bellow:

● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-03-31 01:50:44 CDT; 8s ago
 Main PID: 716 (nginx)
   CGroup: /system.slice/nginx.service
           ├─716 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
           ├─717 nginx: worker process
           ├─718 nginx: worker process
           ├─719 nginx: worker process
           └─720 nginx: worker process

Open firewall ports

If you are using ufw you need to open HTTP port 80 and/or HTTPS port 433. Ufw comes with profiles based on the default ports of most common daemons and programs.

To open both Nginx ports run the following command:

sudo ufw allow 'Nginx Full'

To verify the change run:

sudo ufw status

The output should look like bellow:

Status: active

To                         Action      From
--                         ------      ----
Nginx Full                 ALLOW       Anywhere
Nginx Full (v6)            ALLOW       Anywhere (v6)

You can now open your browser, enter your server IP address into your browser address bar and you should see the default Nginx page.

install-nginx-on-ubuntu-16-04-7668613

Managing Nginx service

You can manage the Nginx service same as any other systemd unit.

Start the nginx service with the following command:

sudo systemctl start nginx

Stop the service with:

sudo systemctl stop nginx

Restart the service with:

sudo systemctl restart nginx

Check the status of the service with:

sudo systemctl status nginx

Enable the service on system boot with:

sudo systemctl enable nginx

Disable the service on system boot with:

sudo systemctl disable nginx

Create a new server block

The default Nginx installation will have one server block enabled with a document root set to /var/www/html.
In this guide we will create a new server block for the domain example.com and set the document root to /var/www/example.com.

First create the domain document root with the following command:

sudo mkdir -p /var/www/example.com

and then create an index.html file with the following content:

sudo vim /var/www/example.com/index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>example.com</title>
</head>
<body>
    <h1>example.com server block</h1>
</body>
</html>

Next create a new server block with the following content:

sudo vim /etc/nginx/sites-available/example.com.conf
server {
       listen 80;
       listen [::]:80;

       server_name example.com www.example.com;

       root /var/www/example.com;
       index index.html;

       location / {
               try_files $uri $uri/ =404;
       }
}

Activate the server block by creating a symbolic link :

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf

Restart Nginx

Test the Nginx configuration and restart nginx:

sudo nginx -t
sudo systemctl restart nginx

Now if you enter example.com into your browser address bar you should see example.com server block.

Original Article