Welcome to the comprehensive NGINX learning curriculum! This repository contains teaching materials designed to take students from complete beginners to advanced NGINX administrators.

📚 Curriculum Overview

This curriculum is organized into three progressive levels:

🟢 Beginner Level

  • Introduction to NGINX
  • Installation and setup
  • Basic configuration concepts
  • Serving static files
  • Understanding directives and contexts
  • Basic server blocks

🟡 Intermediate Level

  • SSL/TLS configuration
  • Reverse proxy setup
  • Load balancing
  • URL rewriting and redirects
  • Caching strategies
  • Virtual hosting

🔐 Let's Encrypt Certificate Guide

  • Introduction to Let's Encrypt
  • Certbot installation
  • Obtaining SSL certificates
  • Auto-renewal setup
  • Troubleshooting
  • Best practices and advanced topics

🔴 Advanced Level

  • Performance optimization
  • Security hardening
  • Troubleshooting and debugging
  • Rate limiting
  • Advanced caching
  • HTTP/2 and HTTP/3
  • Monitoring and logging
  • Enterprise features

📖 How to Use These Materials

  1. Start with Beginner Level: Complete all modules in order
  2. Practice Hands-On: Each level includes practical exercises
  3. Review Configuration Files: Study the example configs in the examples/ directory
  4. Complete Exercises: Test your understanding with practical tasks

📁 Directory Structure

nginx/
├── README.md                          # This file
├── beginner/
│   ├── 01-introduction.md
│   ├── 02-installation.md
│   ├── 03-basic-configuration.md
│   ├── 04-serving-static-files.md
│   └── 05-server-blocks.md
├── intermediate/
│   ├── 01-ssl-tls.md
│   ├── 02-reverse-proxy.md
│   ├── 03-load-balancing.md
│   ├── 04-url-rewriting.md
│   ├── 05-caching.md
│   └── 06-virtual-hosting.md
├── advanced/
│   ├── 01-performance-tuning.md
│   ├── 02-security-hardening.md
│   ├── 03-troubleshooting.md
│   ├── 04-rate-limiting.md
│   ├── 05-advanced-caching.md
│   ├── 06-http2-http3.md
│   └── 07-monitoring.md
├── lets-encrypt/
│   ├── 01-introduction.md
│   ├── 02-certbot-installation.md
│   ├── 03-obtaining-certificates.md
│   ├── 04-auto-renewal.md
│   ├── 05-troubleshooting.md
│   └── 06-best-practices.md
├── examples/
│   ├── beginner/
│   ├── intermediate/
│   └── advanced/
└── exercises/
    ├── beginner/
    ├── intermediate/
    └── advanced/

🎯 Learning Objectives

By the end of this curriculum, you will be able to:

  • Install and configure NGINX on various operating systems
  • Set up web servers serving static and dynamic content
  • Configure SSL/TLS certificates for secure connections
  • Implement reverse proxy and load balancing solutions
  • Optimize NGINX for high performance
  • Secure NGINX configurations
  • Troubleshoot common issues
  • Monitor and maintain NGINX servers

🔧 Prerequisites

  • Basic understanding of Linux command line
  • Knowledge of HTTP protocol fundamentals
  • Familiarity with basic networking concepts
  • Access to a Linux system (VM, cloud instance, or local machine)

📝 Additional Resources

🚀 Getting Started

Begin with the Beginner Level - Introduction module.

Happy learning! 🎓