We may earn an affiliate commission when you visit our partners.
Course image
Ray Viljoen

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.

Read more

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 39 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.

Enroll now

What's inside

Learning objectives

  • 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

Syllabus

Learn about the key motivations behind NGINX's and how it differs from Apache

What to expect from this course.

A quick look at NGINX's backstory and basic architecture.

Read more

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
Learn to configure & build a custom NGINX install, and add NGINX as a system service

An overview of the lesson structure:

  • Demo server
  • File transfer clients
  • Terminal and Editor

Learn the most basic way to install and start NGINX, using a package manager such as apt-get or yum.

How to configure and compile a customised NGINX install from source:

  • Downloading source code
  • Configuring custom source code compilation options
  • Adding non-default modules

Learn to add a custom NGINX install as a systemd service, for easier process management.

An overview of why this course excludes Windows

Learn to configure NGINX

Understand NGINX configuration terminology, like context and directive, in order to follow along and make use of the NGINX documentation.

Learn to configure the most basic static file server.

  • Create a new server context (virtual host)
  • Configure static file serving and mime types.

Learn to configure location blocks (contexts):

  • Custom URI matching with various modifiers
  • Modifier priorities

Use NGINX variables & conditionals:

  • Built in variables
  • User defined variables
  • Conditional statements (if)

Understand the difference between redirects & rewrites and how rewritten URIs are re-evaluated.

Learn how the try_files directive works in detail.

Includes:

  • Standard try_files implementation
  • Rewrite-flow
  • Using named locations

Fine tune error & access logs for better debugging and optimised performance.

Understand different types of directives and how inheritance applies to each:

  • Standard Directive
  • Action Directive
  • Array Directive

Learn to install and configure a standalone server-side language processor (PHP-FPM)

  • PHP-FPM installation
  • NGINX to PHP-FPM socket communication configuration
  • Permissions configuration

Configure NGINX worker processes and file limits to match server capabilities. 

An overview of key buffer & timeout directives:

  • What buffering is
  • Why a server buffers data
  • How to optimise buffer and timeout configurations

Learn to safely rebuild NGINX with the current build configuration whilst adding new modules:

  • Getting the current NGINX build configuration
  • Building new modules into NGINX
  • Enabling dynamic modules
Learn to optimise an NGINX server for performance both client and server-side

Configure resource-specific Expires Headers to help improve client-side performance and reduce server load.

Learn how to enable and configure Gzipping of static resources, drastically reducing server to client transfer data.

Improve dynamic language responses by enabling server-side caching.

Includes:

  • Configuring FastCGI caching
  • Understanding cache entries and entry matching
  • Adding cache status headers
  • Creating cache exceptions

Add the HTTP2 module:

  • Understanding HTTP2 vs HTTP1.1
  • Compiling the module into NGINX
  • Generating self-signed SSL certificates
  • Enabling SSL
  • Enabling and testing for HTTP2

Learn to implement a very basic server push using HTTP2.

Configure SSL and harden Nginx

Fine-tune the SSL configuration by adding:

  • Optimised SSL protocols
  • Optimised ciphers suites
  • Enable Diffie Hellman Key Exchange
  • Cache SSL session

Learn to configure NGINX rate limiting:

  • Set limiting factor:
    • User IP
    • Request
    • Server name
  • Manage limiting behaviour by adding burst allowances and nodelay

Secure specific parts of the server via username &  password authentication.
Learn to use apache-utils to generate a password file and configure NGINX to secure requests to specific URIs.

Some best practises for securing an NGINX server, including:

  • Removing unused default modules
  • Hiding server information
  • Restricting site embedding


    A supplementary lesson on using Lets Encrypt on NGINX to generate free SSL certificates.

    This lesson covers:

    • An overview of Lets Encrypt as a service.
    • Certbot install and usage.
    • Certificate renewal and automation.
    Learn to reverse proxy any resource using NGINX and implement a simple Load Balancer by means of this reverse proxy functionality.

    An overview of some changes to the lessons' format and tools used to test reverse proxying and load balancing.

    Learn to implement reverse proxying in NGINX as a feature in of itself rather than only to support a backend.

    An introduction to understanding the basic concept of load balancing and a default round-robin implementation of NGINX as a load balancer.

    Learn to customise an NGINX load balancer by means of ip hashing or connection-based load balancing.

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

    Course Updates, feedback & suggestions

    An outro consisting of:

    • Expected course updates & additions

    • Course Feedback & Suggestions

    • Links to more Stackacademy.tv Courses

    Older (often deprecated) lessons for reference

    Learn to add a custom NGINX install as an init service, for easier process management.

    NOTE: Lesson deprecated in favour of systemd services

    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.

    NOTE: The referenced Geo Data is no longer free. This lesson has therefore been deprecated, but remains here for reference.

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

    Old Lesson: Archived for Reference Only

    Good to know

    Know what's good
    , what to watch for
    , and possible dealbreakers
    Teaches foundational skills in NGINX
    Develops professional skills and nuanced expertise in web server configuration
    Provides hands-on practice and interactive materials
    Covers concepts highly relevant to web developers and network administrators
    Builds a strong foundation for beginners
    Strengthens existing foundation for intermediate learners

    Save this course

    Save NGINX Fundamentals: High Performance Servers from Scratch to your list so you can find it easily later:
    Save

    Reviews summary

    Comprehensive nginx intro

    Learners say this course is a great introduction to NGINX. The lectures are short, simple, and easy to understand. The instructor is highly praised and is said to break down complex topics into easy to understand concepts.

    Activities

    Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in NGINX Fundamentals: High Performance Servers from Scratch with these activities:
    NGINX Community Forum Participation
    Engage with the NGINX community by participating in discussions, asking questions, and sharing knowledge, which can provide insights and solutions to your own challenges.
    Browse courses on Collaborative Learning
    Show steps
    • Join the NGINX community forums or online groups
    • Read through existing threads and ask questions about topics you need clarification on
    • Share your own experiences and knowledge to help others
    Configure a Real-World Web Server
    Gain hands-on experience by configuring and managing your own web server, applying the principles you learn in the course.
    Browse courses on Web Server Configuration
    Show steps
    • Choose a web server platform (e.g., AWS, Google Cloud, DigitalOcean)
    • Set up the server's operating system and install NGINX
    • Configure NGINX to host a static website or a dynamic application
    • Secure the server with SSL/TLS and firewall rules
    Show all two activities

    Career center

    Learners who complete NGINX Fundamentals: High Performance Servers from Scratch will develop knowledge and skills that may be useful to these careers:
    Web Developer
    Web developers use their knowledge of programming languages and web design to create and maintain websites. An Nginx Fundamentals course would provide a solid foundation in the Nginx web server, which is known for its high performance and security. This knowledge is essential for web developers who want to build websites that are both efficient and secure.
    Systems Administrator
    Systems administrators are responsible for maintaining and troubleshooting computer systems. An Nginx Fundamentals course would provide a solid foundation in the Nginx web server, which is known for its high performance and security. This knowledge is essential for systems administrators who want to keep their systems running smoothly and securely.
    Network Administrator
    Network administrators are responsible for maintaining and troubleshooting computer networks. An Nginx Fundamentals course would provide a solid foundation in the Nginx web server, which is known for its high performance and security. This knowledge is essential for network administrators who want to keep their networks running smoothly and securely.
    Security Analyst
    Security analysts are responsible for identifying and mitigating security risks. An Nginx Fundamentals course would provide a solid foundation in the Nginx web server, which is known for its high performance and security. This knowledge is essential for security analysts who want to protect their organizations from cyber attacks.
    DevOps Engineer
    DevOps engineers are responsible for bridging the gap between development and operations teams. An Nginx Fundamentals course would provide a solid foundation in the Nginx web server, which is known for its high performance and security. This knowledge is essential for DevOps engineers who want to build and maintain high-quality software.
    Cloud Engineer
    Cloud engineers are responsible for designing, deploying, and managing cloud-based applications. An Nginx Fundamentals course would provide a solid foundation in the Nginx web server, which is known for its high performance and security. This knowledge is essential for cloud engineers who want to build and maintain scalable and reliable cloud-based applications.
    Site Reliability Engineer
    Site reliability engineers are responsible for ensuring the reliability and performance of websites and other online services. An Nginx Fundamentals course would provide a solid foundation in the Nginx web server, which is known for its high performance and security. This knowledge is essential for site reliability engineers who want to keep their websites and online services running smoothly and reliably.
    Software Engineer
    Software engineers are responsible for designing, developing, and maintaining software applications. An Nginx Fundamentals course would provide a solid foundation in the Nginx web server, which is known for its high performance and security. This knowledge is essential for software engineers who want to build and maintain high-quality software applications.
    Data Analyst
    Data analysts are responsible for collecting, analyzing, and interpreting data to help businesses make better decisions. An Nginx Fundamentals course may be useful for data analysts who want to learn how to use Nginx to improve the performance and security of their data pipelines.
    Business Analyst
    Business analysts are responsible for helping businesses understand their needs and develop solutions to meet those needs. An Nginx Fundamentals course may be useful for business analysts who want to learn how to use Nginx to improve the performance and security of their business applications.
    Project Manager
    Project managers are responsible for planning, executing, and closing projects. An Nginx Fundamentals course may be useful for project managers who want to learn how to use Nginx to improve the performance and security of their projects.
    Technical Writer
    Technical writers are responsible for creating documentation for software and other technical products. An Nginx Fundamentals course may be useful for technical writers who want to learn how to write documentation for Nginx.
    Sales Engineer
    Sales engineers are responsible for selling technical products and services. An Nginx Fundamentals course may be useful for sales engineers who want to learn how to sell Nginx to their customers.
    Customer Success Manager
    Customer success managers are responsible for helping customers achieve success with their products and services. An Nginx Fundamentals course may be useful for customer success managers who want to learn how to help their customers use Nginx successfully.
    Marketing Manager
    Marketing managers are responsible for developing and executing marketing campaigns. An Nginx Fundamentals course may be useful for marketing managers who want to learn how to use Nginx to improve the performance and security of their marketing campaigns.

    Reading list

    We've selected seven books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in NGINX Fundamentals: High Performance Servers from Scratch.
    The NGINX Performance Tuning Guide collection of tips and tricks for improving the performance of NGINX. It valuable resource for anyone who wants to make their NGINX server faster.
    Provides a holistic view of DevOps practices, which would be relevant to the deployment and maintenance of Nginx
    Provides a deep dive into the HTTP protocol, which provides a useful theoretical background for the Nginx course.
    Provides an in-depth understanding of TCP/IP concepts that would be helpful for understanding the operation of Nginx.
    Provides a good overview of modern operating system concepts, which would be helpful for understanding how Nginx interacts with the OS.

    Share

    Help others find this course page by sharing it with your friends and followers:
    Our mission

    OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

    Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

    Find this site helpful? Tell a friend about us.

    Affiliate disclosure

    We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

    Your purchases help us maintain our catalog and keep our servers humming without ads.

    Thank you for supporting OpenCourser.

    © 2016 - 2024 OpenCourser