Look out Apache, there’s a web server — Nginx (pronounced Engine X) — that means to dismantle you as the defacto standard web server. The Nginx
project started development in 2002, but it’s just now really showing its strength
and starting to gain a serious following. Nginx is a free, open-source,
high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy
server, and it’s known for high performance, stability, a vast feature set, easy
configuration, and very low resource consumption.

Since Nginx is new to many users, I thought I should begin a series of articles to get everyone up to speed on
using this fantastic web server. Throughout this series, I’ll be using the
Ubuntu platform. You can use this series as the basis for other platforms — just pay close attention to the variances of installation technology and (in
some cases) directory structure. With that said, let’s install Nginx on the
Ubuntu platform.

Note: As this series won’t bother with basic platform
setup and security, I’ll assume that you already have the server up and running
and secure to your liking. I’ll also assume that you have MySQL up and running
(along with PHP support).

Requirements

Nginx has few dependencies that Ubuntu doesn’t already
take care of. Here’s what you’ll need:

  • The Gzip modules requires the zlib library
  • The rewrite module requires the pcre library
  • SSL support requires the openssl library

With the Ubuntu platform, the only library from the list above that you’ll need to install is the pcre library. To install this,
follow these steps:

  1. Open a terminal window
  2. Issue
    the command: sudo apt-get install libpcre3-dev
  3. Type
    your sudo password and hit Enter
  4. Accept
    the installation
  5. Allow
    the installation to complete

Nginx can use PHP5 with the help of PHP-FPM (an
alternative PHP FastCGI implementation with additional features, which is useful to
busier sites). Here’s how to install PHP-FPM:

  1. Open a terminal window
  2. Issue
    the command: sudo apt-get install php5-fpm
  3. Type
    your sudo password (if prompted) and hit Enter
  4. Accept
    the installation
  5. Allow
    the installation to complete

Installing Nginx

As you might expect, the installation of Nginx is quite
simple. Just follow these steps:

  1. Open a terminal window
  2. Issue
    the command: sudo apt-get install nginx
  3. Type
    your sudo password (if prompted) and hit Enter
  4. Accept
    the installation
  5. Allow
    the installation to complete

That’s it. The new web server is installed. Now, let’s
peek around a bit.

Starting and stopping the server

To start the Nginx server, issue the following command:

sudo service nginx start

Top stop the Nginx server, issue the following command:

sudo service nginx stop

With the Nginx service started, fire up your browser and
point it to the IP address (or domain) of the hosting server. If you see the
“Welcome to Nginx” page, everything is good to go.

Before you close that terminal window, it’s necessary to
set the Nginx service to start at boot. Just issue the following command:

update-rc.d nginx defaults

If you see:

System start/stop links for /etc/init.d/nginx already exist

That means Nginx is already set to start at boot time. You can now rest assured that you won’t have to manually start
your web server upon reboot.

Configuration files/folders

  • The main configuration file for Nginx is
    /etc/nginx/nginx.conf
  • Virtual hosts are defined in
    /etc/nginx/sites-available/default
  • PHP will be configured in /etc/php5/fpm/php.ini

That should do it for Nginx installation on the Ubuntu
platform. In upcoming posts, we’ll start working through various configurations
and optimizations to round out the series. Enjoy your new web server!