Created
May 23, 2017 16:32
-
-
Save luisfc/ac89e7a4e9d0609971f70b0d4d40c8f4 to your computer and use it in GitHub Desktop.
How To Install Nginx on Ubuntu 16.04
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
NGINX UBUNTU UBUNTU 16.04 | |
Introduction | |
Nginx is one of the most popular web servers in the world and is responsible for hosting some of the largest and highest-traffic sites on the internet. It is more resource-friendly than Apache in most cases and can be used as a web server or a reverse proxy. | |
In this guide, we'll discuss how to get Nginx installed on your Ubuntu 16.04 server. | |
Prerequisites | |
Before you begin this guide, you should have a regular, non-root user with sudo privileges configured on your server. You can learn how to configure a regular user account by following our initial server setup guide for Ubuntu 16.04. | |
When you have an account available, log in as your non-root user to begin. | |
Step 1: Install Nginx | |
Nginx is available in Ubuntu's default repositories, so the installation is rather straight forward. | |
Since this is our first interaction with the apt packaging system in this session, we will update our local package index so that we have access to the most recent package listings. Afterwards, we can install nginx: | |
sudo apt-get update | |
sudo apt-get install nginx | |
After accepting the procedure, apt-get will install Nginx and any required dependencies to your server. | |
Step 2: Adjust the Firewall | |
Before we can test Nginx, we need to reconfigure our firewall software to allow access to the service. Nginx registers itself as a service with ufw, our firewall, upon installation. This makes it rather easy to allow Nginx access. | |
We can list the applications configurations that ufw knows how to work with by typing: | |
sudo ufw app list | |
You should get a listing of the application profiles: | |
Output | |
Available applications: | |
Nginx Full | |
Nginx HTTP | |
Nginx HTTPS | |
OpenSSH | |
As you can see, there are three profiles available for Nginx: | |
Nginx Full: This profile opens both port 80 (normal, unencrypted web traffic) and port 443 (TLS/SSL encrypted traffic) | |
Nginx HTTP: This profile opens only port 80 (normal, unencrypted web traffic) | |
Nginx HTTPS: This profile opens only port 443 (TLS/SSL encrypted traffic) | |
It is recommended that you enable the most restrictive profile that will still allow the traffic you've configured. Since we haven't configured SSL for our server yet, in this guide, we will only need to allow traffic on port 80. | |
You can enable this by typing: | |
sudo ufw allow 'Nginx HTTP' | |
You can verify the change by typing: | |
sudo ufw status | |
You should see HTTP traffic allowed in the displayed output: | |
Output | |
Status: active | |
To Action From | |
-- ------ ---- | |
OpenSSH ALLOW Anywhere | |
Nginx HTTP ALLOW Anywhere | |
OpenSSH (v6) ALLOW Anywhere (v6) | |
Nginx HTTP (v6) ALLOW Anywhere (v6) | |
Step 3: Check your Web Server | |
At the end of the installation process, Ubuntu 16.04 starts Nginx. The web server should already be up and running. | |
We can check with the systemd init system to make sure the service is running by typing: | |
systemctl status nginx | |
Output | |
● 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 Mon 2016-04-18 16:14:00 EDT; 4min 2s ago | |
Main PID: 12857 (nginx) | |
CGroup: /system.slice/nginx.service | |
├─12857 nginx: master process /usr/sbin/nginx -g daemon on; master_process on | |
└─12858 nginx: worker process | |
As you can see above, the service appears to have started successfully. However, the best way to test this is to actually request a page from Nginx. | |
You can access the default Nginx landing page to confirm that the software is running properly. You can access this through your server's domain name or IP address. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment