# KodeKloud: Beta Courses Nginx For Beginners

## Nginx For Beginners

### Introduction

- [Introduction and Objectives](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Introduction/Introduction-and-Objectives/page.md): Hands-on NGINX course teaching installation, virtual hosts, reverse proxying, TLS security, performance optimizations, caching, rate limiting, monitoring, and troubleshooting for production web deployments
- [Web Servers](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Introduction/Web-Servers/page.md): Overview of web servers, how browsers load webpages, networking details, deployment patterns, server models, popular servers, and related concepts like CDNs, reverse proxies, and TLS.
- [Introduction to Nginx](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Introduction/Introduction-to-Nginx/page.md): Introduction to Nginx web server, its event driven architecture, uses as reverse proxy and load balancer, static content serving, editions, performance strengths and widespread adoption
- [Nginx Architecture](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Introduction/Nginx-Architecture/page.md): Explains NGINX’s event-driven asynchronous architecture and how master and worker processes use non-blocking I/O and readiness notifications to handle many concurrent connections efficiently.
- [Nginx Use Cases](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Introduction/Nginx-Use-Cases/page.md): NGINX use cases and practical examples for load balancing, reverse and forward proxying, and caching to improve performance, reliability, and security.
- [Summary](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Introduction/Summary/page.md): Concise overview of Nginx, its event-driven architecture, open-source and commercial editions, and common uses like reverse proxying, load balancing, TLS termination, and caching

### Install & Config

- [Install Config Introduction](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Install-Config/Install-Config-Introduction/page.md): Guide to installing, configuring, and managing Nginx across platforms, covering package managers, service commands, nginx.conf structure, hosting static sites, and basic firewall rules.
- [Nginx Overview](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Install-Config/Nginx-Overview/page.md): Concise guide to NGINX configuration structure, key directives, server blocks, common files and commands for managing and troubleshooting NGINX.
- [Install Config](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Install-Config/Install-Config/page.md): Guide to package managers and installing NGINX with common commands for apt, yum/dnf, Homebrew and Chocolatey.
- [Demo Nginx Install Config](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Install-Config/Demo-Nginx-Install-Config/page.md): Guide to installing, verifying, and inspecting Nginx on Ubuntu, covering apt commands, service management, configuration files, testing with curl, and log locations.
- [Demo First Website with Nginx](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Install-Config/Demo-First-Website-with-Nginx/page.md): Guide to creating and serving a minimal Hello World website with NGINX, including configuration, document root, enabling site, testing with Host header, and troubleshooting.
- [Firewall Ports](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Install-Config/Firewall-Ports/page.md): Guide to firewall ports, how firewalls control network traffic, common web and SSH ports, and managing rules with UFW, Firewalld and inspection tools like ss or netstat.
- [Demo Firewall Ports Install Config](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Install-Config/Demo-Firewall-Ports-Install-Config/page.md): Configuring UFW firewall and ports for NGINX and a Flask app, verifying services and recommending reverse proxying and SSH safety.
- [Summary](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Install-Config/Summary/page.md): NGINX installation and configuration guide covering package installation, service control, nginx.conf structure, serving static files and reverse proxy setup, default page customization, and firewall best practices.

### Intermediate Config

- [Intermediate Config introduction](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Intermediate-Config/Intermediate-Config-introduction/page.md): Practical NGINX guide covering hosting multiple sites, redirects, rewrites, upstream load balancing, reverse proxying, and caching for production.
- [Virtual Servers Multiple Sites](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Intermediate-Config/Virtual-Servers-Multiple-Sites/page.md): How to use NGINX server blocks to host multiple websites on one server, including configuration examples, ports, TLS termination, and deployment best practices.
- [Demo Configure Multiple Sites](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Intermediate-Config/Demo-Configure-Multiple-Sites/page.md): How to configure Nginx host based virtual hosting to serve multiple websites, create site configs, enable sites, and test using curl with custom Host headers
- [URL Redirect Rewrite](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Intermediate-Config/URL-Redirect-Rewrite/page.md): Guide to Nginx URL redirects and rewrites, explaining return versus rewrite and try_files with examples for site migrations, domain redirects, and internal URL mapping
- [Demo Configure URL Redirect](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Intermediate-Config/Demo-Configure-URL-Redirect/page.md): Guide to configure NGINX to redirect HTTP traffic to HTTPS, enable TLS and firewall rules, enable site, reload NGINX, and verify redirects.
- [Demo Configure URL Rewrite](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Intermediate-Config/Demo-Configure-URL-Rewrite/page.md): Guide showing how to configure an Nginx rewrite to permanently redirect /images requests to /pics, preserving links and issuing HTTP 301 responses
- [Load Balancer](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Intermediate-Config/Load-Balancer/page.md): Explains NGINX load balancing concepts, supported algorithms, health checks, configuration examples, and testing methods to improve performance and fault tolerance.
- [Demo Load Balancer](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Intermediate-Config/Demo-Load-Balancer/page.md): Configuring Nginx as a reverse proxy load balancer demonstrating round-robin, weighted round-robin and ip_hash sticky sessions with Apache backends
- [Reverse Proxy](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Intermediate-Config/Reverse-Proxy/page.md): Overview of NGINX reverse proxy functionality including TLS termination, load distribution, caching, header manipulation, and configuration examples for proxying backend application servers.
- [Demo Reverse Proxy](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Intermediate-Config/Demo-Reverse-Proxy/page.md): Configuring Nginx as a reverse proxy to load balance and forward HTTP requests on port 80 to multiple Flask backends running on port 5000, with firewall and testing steps.
- [Summary](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Intermediate-Config/Summary/page.md): NGINX intermediate configuration guide covering server blocks, HTTPS redirects, rewrites, upstream load balancing, reverse proxy usage, and caching best practices.

### Security

- [Security Introduction](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Security/Security-Introduction/page.md): Practical guide to securing local web development using HTTPS, TLS, Nginx headers, authentication, and access controls.
- [HTTPS](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Security/HTTPS/page.md): Explains HTTPS/TLS, certificate authorities, obtaining and using certificates with Certbot or mkcert, and configuring Nginx to serve secure HTTPS for production and local development.
- [Demo HTTPS](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Security/Demo-HTTPS/page.md): Guide to configuring NGINX for HTTP to HTTPS redirects and as an HTTPS reverse proxy forwarding TLS to Apache backends, including test certs, SNI, and certificate verification best practices.
- [HTTP Headers](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Security/HTTP-Headers/page.md): Guide explaining HTTP headers, categories, examples, security, caching, CORS, proxy usage, and NGINX configuration to set and forward headers
- [Demo HTTP Headers](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Security/Demo-HTTP-Headers/page.md): Configuring NGINX to add security HTTP headers, terminate TLS, load balance to Apache backends, forward proxy headers, and update Apache logs to record original client information.
- [Basic Authentication](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Security/Basic-Authentication/page.md): Guide to setting up HTTP Basic Authentication with NGINX including creating htpasswd credentials, configuring auth_basic for protected locations, and security best practices
- [Demo Authentication](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Security/Demo-Authentication/page.md): Shows how to add Basic Auth to an NGINX site to protect an /admin path using auth_basic and an .htpasswd file, with setup, testing, and alternatives
- [Blocking Traffic](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Security/Blocking-Traffic/page.md): Explains blocking unwanted traffic using NGINX allow/deny and Fail2Ban for automated IP bans and rate limiting to protect web applications.
- [Demo Blocking Traffic](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Security/Demo-Blocking-Traffic/page.md): Configuring Nginx to allow or deny IPs and using fail2ban to automatically ban repeated failed HTTP Basic auth attempts
- [Summary](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Security/Summary/page.md): Concise security and operational guide for serving web traffic, covering HTTPS, certificates, reverse proxy headers, authentication, access control, security headers, and automation best practices.

### Performance

- [Performance Introduction](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Performance/Performance-Introduction/page.md): Practical NGINX performance techniques and configurations for rate limiting, caching, compression, keep-alive tuning, log analysis, and monitoring with Datadog
- [Rate Limiting](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Performance/Rate-Limiting/page.md): Explains Nginx rate limiting concepts and configurations to protect servers from abuse like DDoS, brute force and scraping using request and connection limits.
- [Demo Rate Limiting](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Performance/Demo-Rate-Limiting/page.md): Guide demonstrating NGINX request and connection rate limiting using limit_req and limit_conn, with testing, configuration examples, tuning, and logs
- [Caching](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Performance/Caching/page.md): Explains using NGINX as a reverse proxy cache, configuration directives, cache keys, TTLs, debugging headers, and cache management to improve backend performance.
- [Demo Caching](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Performance/Demo-Caching/page.md): Guide demonstrating how to configure and verify NGINX disk proxy caching in front of Apache backends to reduce origin load with logging and verification steps.
- [Compression](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Performance/Compression/page.md): Explains using gzip and Brotli in NGINX to compress text assets, compare algorithms, configure settings, and avoid compressing already compressed media.
- [Demo Compression](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Performance/Demo-Compression/page.md): Demonstrating enabling and verifying gzip compression in Nginx, measuring performance improvements, configuring gzip directives, and validating compressed responses in browser and server logs
- [Connection Handling](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Performance/Connection-Handling/page.md): Guide to NGINX connection handling, tuning worker processes and connections, keepalive and upstream pooling, sendfile and TCP options, and protocol impacts on scalability and latency.
- [Monitoring Troubleshooting](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Performance/Monitoring-Troubleshooting/page.md): Guide for monitoring and troubleshooting NGINX covering access and error logs, stub_status metrics, monitoring integrations, runtime checks, configuration validation, reloads, and production best practices
- [Demo Monitoring](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Performance/Demo-Monitoring/page.md): Guide to installing the Datadog Agent on Ubuntu EC2 and enabling NGINX stub status integration to collect system and NGINX metrics, view dashboards and create alerts
- [Demo Troubleshooting](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Performance/Demo-Troubleshooting/page.md): Practical NGINX troubleshooting guide covering quick checks, configuration testing, graceful reloads, logging, firewall and TLS issues, curl diagnostics, and a final troubleshooting checklist.
- [Summary](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Performance/Summary/page.md): Practical guide to improving web server performance, reliability, and observability with rate limiting, caching, compression, keepalives, worker tuning, logging, and monitoring

### Conclusion 

- [Conclusion](https://notes.kodekloud.com/docs/Nginx-For-Beginners/Conclusion/Conclusion/page.md): Conclusion summarizing NGINX basics and advanced topics, including setup, load balancing, caching, security, production readiness, optimizations, and suggested next steps.
