Nginx Fundamentals: High Performance Servers from Scratch

Learn how to install & configure an Nginx web server from scratch.
4.6 (179 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
1,513 students enrolled
84% off
Take This Course
  • Lectures 26
  • Length 2 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 10/2015 English

Course Description

Learn to install, configure and tweak NGINX to create secure, high performance web servers from scratch.

Build a strong foundation in NGINX with this practical course suited to both beginners and the more experienced.

  • Learn to customise the NGINX installation
  • Configure NGINX as a web server
  • Install & configure a server-side programming language as an NGINX backend
  • Learn to tweak NGINX for optimal performance
  • Secure NGINX with some security best practises

An invaluable skill for any techie or developer in the web industry

NGINX is the fastest growing and most popular web server for a reason, so understanding it will be an invaluable skill to anyone working in the web industry, specially network admins & web developers.

This course will provide a very practical and concise approach to learning NGINX and will give you a solid base to immediately start creating secure, high performance web servers.

Content and Overview

With 24 concise and practical lectures, this course aims to teach a solid foundational understanding of NGINX and is suitable for anyone with a basic understanding of networking and the linux command line interface.

The course starts by looking at the differences between NGINX and Apache for those with Apache experience and then explains the different ways of installing NGINX, customising your install, and configuring NGINX as a service.

The installation section also covers updating NGINX without downtime and adding/removing modules.

The bulk of the course is then focussed on configuring NGINX as a web server, including connecting it to a PHP backend and configuring some of NGINX's best features, such as Gzipping and GeoIP.

The final section will go over securing the server and the user via SSL and other security best practices.

Upon completion of this course you will have the practical skills to immediately start building secure, high performance web servers or improve and better understand existing hosting solutions you might work with.

This course is to the point and everything is demonstrated in the most simple, yet practical ways.

We do not focus on the theory, but get straight to installing, configuring and learning!

What are the requirements?

  • Understand basic networking concepts
  • Be comfortable using the command line

What am I going to get from this course?

  • Learn to create custom Nginx web servers
  • Customise your Nginx install
  • Secure & optimise your server
  • Add an invaluable skill to your resume
  • Verifiable certificate of completion

Who is the target audience?

  • This course is aimed at Nginx newbies looking to get started as quickly and effectively as possible.
  • The aim is to get a practical understanding of Nginx as a real-world web server and not dig into all of it's features.
  • The course does not cover hosting/networking concepts, but rather assumes an understanding of the basic principles and use of commands such as curl.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Overview

A quick look at who created Nginx & why it was needed. Also covers a brief conceptual overview of Nginx architecture.


Apache has been the go to web server for years, and many students will be familiar with it, this video explain just how Nginx differs from Apache and the pros and cons of each, including:

  • Performance
  • Memory Usage
  • Server-side language configuration
  • URI handling
Test your knowledge
1 question
Section 2: Installation

Learn how to install Nginx on a linux based system using a package manager such as apt-get or yum.


How to configure, build and install Nginx from source.

  • Downloading source code
  • Setting configuration options
  • Adding non-default modules

After installing Nginx from source, this video covers how to configure Nginx as a system service for easier process management.

Configuring Nginx as a service will allow service commands like:

  • Start
  • Stop
  • Restart
  • Reload
  • Status

This also allows changes to the Nginx configuration to be loaded easilly without any server downtime.


A very brief overview of running Nginx on Windows and it's limitations.

Test your knowledge
1 question
Section 3: Configuration

Understand the Nginx configuration terms like 'context' and 'directive' in order to follow along and also grasp external resources and documentation.


How to configure a minimal static file serving virtual host.


Learn how to write location blocks for different behaviours on different URI requests to the server.


Fine tune error and access logs on the server for better debugging and optimised performance.


Explains different types of directives and how they get inherited.

Directive include:

  • Standard
  • Action
  • Array

Also covers the try_files directive.


How to install a standalone server-side language (PHP-FPM) and configure Nginx to communicate with it via either a unix socket or a TCP port.


Learn to optimise the Nginx process by configuring options such as:

  • Number of processes
  • Number of worker processes
  • Calculating max connections
  • Setting buffer sizes
  • Setting timeouts

Build Nginx with dynamically loadable modules.

Test your knowledge
7 questions
Section 4: Best Nginx features

Lessen server load and improve performance for the client by configuring expires headers on static assets such as stylesheets and javascript files.


Learn to enable and optimise Gzipping on the server for significant performance increases in the browser.


Learn to enable Nginx's built in FastCGI cache for caching dynamic responses as static resources. This allows for greatly improved server response times and improves the load handling capability of the server.


An explanation and demonstration of implementing request rate limits on the server. This includes limiting:

  • Users per IP
  • Requests per vhost

Looks at configuring the MP4 module for Nginx. This includes setting streaming limits and using pseudo streaming.


Set up geo location data on the server. This video teaches how to:

  • Install the Maxmind geoip libraries
  • Configure Nginx to look up geo location data using the GeoIP module
  • Retrieve geo data using the module variables.

Why HTTP2 and how to configure an Nginx Vhost to support HTTP2 connections.

3 questions

A quiz on the basic concepts of configuring Nginx.

Section 5: Security

Encrypt connection via HTTPS. This video demonstrates creating and installing SSL certificates and configuring Nginx to listen for HTTPS connections.


Secure all or parts of the server via password. Learn to use apache-utils to create a password file and configure Nginx to secure requests to a certain URI.


Some best practises for securing an Nginx server, including:

  • Removing unused modules
  • Hiding server version information
  • Blocking certain user agents or referrers
  • Restricting iframe requests
Test your knowledge
3 questions
Section 6: Nginx Resources

See where to find the best Nginx resources, references and further learning. Also covers the standard Nginx documentation structure.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Ray Viljoen, Courses Designed for Learning Efficiency. provides high-quality e-courses for developers & digital creatives, with learning-efficiency as the number 1 priority.

My name is Ray Viljoen, I have 9 years of development experience as a full stack developer for a London-based tech company and I'm 100% self-taught.

My courses focus on practical skills and is designed to be easy to follow and review. Every lesson is concise and aims to teach real world skills.

Ready to start learning?
Take This Course