Nginx
Nginx (pronounced 'engine-x') is an open-source web server, reverse proxy, load balancer, and HTTP cache created by Igor Sysoev in 2004; Nginx uses a master process and multiple worker processes; Nginx configuration syntax has a learning curve, and SSL certificate renewal via Certbot requires cron scheduling, making Caddy or Traefik more beginner-friendly alternatives for new self-hosters
Nginx (pronounced ‘engine-x’) is an open-source web server, reverse proxy, load balancer, and HTTP cache created by Igor Sysoev in 2004. It is designed around an asynchronous, event-driven architecture that handles large numbers of concurrent connections with low memory usage, making it the dominant web server on the internet by volume. In self-hosted and homelab contexts, Nginx is most commonly used as a reverse proxy that terminates HTTPS and routes requests to containerized backend applications.
How it works
Nginx uses a master process and multiple worker processes. Each worker handles thousands of connections using non-blocking I/O and an event loop (epoll on Linux), avoiding the per-connection thread overhead of older Apache-style architectures. Configuration is declarative: server blocks define virtual hosts, and location blocks define routing rules and proxy targets. For reverse proxy use, the proxy_pass directive forwards matched requests to an upstream service, with options for buffering, header manipulation, timeouts, and upstream load balancing.
Key facts
- Market share: Nginx serves over 30 percent of the top 1 million websites and is the most deployed web server in Docker environments
- vs. Caddy: Nginx requires manual Let’s Encrypt configuration (typically via Certbot); Caddy automates TLS certificate provisioning with zero config
- Nginx Proxy Manager: A GUI wrapper around Nginx specifically designed for self-hosters who want reverse proxy management without editing configuration files directly
For builders
Nginx configuration syntax has a learning curve, and SSL certificate renewal via Certbot requires cron scheduling, making Caddy or Traefik more beginner-friendly alternatives for new self-hosters. However, Nginx’s stability, performance, and documentation breadth make it the right choice for builders who want fine-grained control over routing rules, rate limiting, or custom response headers. Nginx Proxy Manager offers a middle ground with a web UI for those who want Nginx’s power without the configuration file gymnastics.
Sources
- IETF. RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3. datatracker.ietf.org
- Donenfeld, J. A. (2017). WireGuard: Next Generation Kernel Network Tunnel. wireguard.com
- F5 / Nginx. Nginx official documentation. nginx.org
- IETF. RFC 1035: Domain Names, Implementation and Specification. datatracker.ietf.org
- Cloudflare. Tunnel and Zero Trust networking documentation. developers.cloudflare.com