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
- Start with Beginner Level: Complete all modules in order
- Practice Hands-On: Each level includes practical exercises
- Review Configuration Files: Study the example configs in the
examples/directory - 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! 🎓