Course Overview

Nginx is an open source HTTP and reverse proxy server, as well as a mail proxy server, load balancer, and HTTP cache. The nginx project started with a strong focus on high concurrency, high performance and low memory usage. It runs on Linux, BSD variants, Mac OS X, Solaris, AIX, HP-UX, as well as on other *nix flavors. It also has a proof of concept port for Microsoft Windows. According to Netcraft nginx served or proxied 17.65% busiest sites in March 2014.

This course will introduce you to the magic of nginx. You will learn to install and configure nginx for a variety of software platforms and how to integrate it with Apache.

Additionally, you will get involved with more advanced concepts like Load Balancing, SSL configuration and Websockets proxying.


Nginx installation on Linux

In this first lesson of our course, you will learn how to install and configure Nginx in various platforms and environments. Installation guidelines are provided for several major Linux distributions, such as Debian Wheezy, Ubuntu 12.04 LTS and CentOS 6.4. Additionally, the activation of various modules is explained, including standard HTTP, optional HTTP and mail modules. Finally, you will learn how to add Nginx as a system service, so that the servers follows the OS’s lifecycle.

Nginx Configuration Guide (Ubuntu 12.04 LTS)

In this lesson, you will get to know the insides of Nginx Configuration. You will get acquainted with the Nginx configuration file syntax and directives, and how to organize the include the various configuration files. Next, you will learn about the base modules, which allow to define the basic parameters and configuration of Nginx. These are built-in into Nginx automatically during compile time. Finally, you will see how to configure an HTTP Server and a mail server proxy, as well as virtual hosts.

Nginx and Apache (Ubuntu 12.04 LTS)

In this lesson, we will examine the integration between Nginx and the Apache web server. Nginx works as reverse proxy. A reverse proxy is a device or service placed between a client and a server in a network infrastructure. We will see how to configure both servers appropriately and how to fine-tune them for performance.

Load balancing with Nginx (Ubuntu 12.04 LTS)

In this lesson, we will see how to perform Load balancing with Nginx. Load balancing is a networking method for distributing workloads across multiple computing resources, such as servers, a server cluster, network links, CPUs, or other hardware components. Using Nginx, we will set up a layer-7 load balancer (which will distribute requests based upon data found in application layer protocols such as HTTP and FTP).

Nginx SSL configuration guide (Ubuntu 12.04 LTS)

In this lesson, we will focus on Nginx’s SSL configuration. The SSL (Secure Socket Layer) protocol was created to ensure secure transactions between web servers and browsers (using secure pages). SSL is supported by the Nginx server. We will see how to create, sign, and use the required certificates, as well as how to setup Nginx SSL’s capabilities.

Nginx Websockets proxying guide (Ubuntu 12.04 LTS)

In this lesson, we will focus on Nginx’s Websockets proxying capabilities. WebSocket is a protocol providing full-duplex communications channels over a single TCP connection and is designed to be implemented in web browsers and servers, but it can be used by any client or server application. Nginx supports Websockets starting in version 1.3.13 and is accessible within the core product. In order to test drive this feature, we will also build a quick Node.js application in order to better assess the Websockets capabilities of Nginx.