Skip to content

NGINX Wiki

The definitive community resource for NGINX internals, configuration patterns, and module development.

Understand how NGINX really works: the event-driven architecture, master/worker process model, C APIs, and how your configuration maps onto those internals.

100+
Config Recipes
50+
API References
Open
Source
nginx.conf — Example Configuration
http {
upstream backend {
server 127.0.0.1:8080 weight=5;
server 127.0.0.1:8081 backup;
}
server {
listen 443 ssl http2;
server_name example.com;
location / {
proxy_pass http://backend;
}
}
}

Explore the Documentation

Architecture Deep Dive

Master NGINX internals: the master/worker process model, non-blocking I/O, event loop mechanics, timers, and the complete HTTP request lifecycle.

Explore Architecture

Core C APIs

Complete reference for ngx_http_request_t, ngx_module_t, memory pools, buffer chains, logging subsystems, and configuration parsing.

Browse API Reference

Module Development

Build custom handlers, filters, and load balancers. Learn compilation workflows, configuration structures, and debug techniques.

Start Building

Configuration Recipes

Production-ready configs for WordPress, Laravel, Django, Ruby, and 50+ frameworks. Copy, paste, and customize.

View All Recipes

Security & SSL

TLS best practices, certificate management, HTTP/2 and HTTP/3 setup, security headers, and hardening guides.

Security Guide

Load Balancing

Upstream configuration, health checks, session persistence, weighted distribution, and failover strategies.

Load Balancing

Getting Started

New to NGINX? Start here with installation, basic configuration, and your first reverse proxy setup.

Quick Start Guide

Common Pitfalls

Avoid the most frequent configuration mistakes. Learn why "if is evil" and other gotchas that trip up newcomers.

Read Pitfalls


**NGINX Wiki** is a community-driven project. [Contribute on GitHub](https://github.com/GetPageSpeed/nginx-wiki){ .md-button }   [Join the Community](community/get-involved.md){ .md-button }