nginx
Open-source web server, reverse proxy, load balancer, and HTTP cache.
HN commenters use it as a battle-tested reverse proxy and TLS terminator for self-hosted services123 and for serving static content very fast.45 The main caveats are that it feels stagnant, without built-in metrics or ACME certificates,6 and that its config has quirks such as the "if" directive.7
Why people recommend it
Reverse proxying · 3
Commenters front many self-hosted apps with it for proxying, TLS termination, rate limiting and filtering.
“I serve a good number of apps from an Nginx reverse proxy.”
“I use nginx as my reverse proxy and TLS terminator.”
Show 1 more
“there are reasons why we use Nginx in front of it. Distribution, filtering, rate limiting, etc..”
Simple setup · 3
Simple setups work well, such as PHP via FastCGI, local custom domains, or basic auth file sharing.
“just install nginx and enable php+fastcgi extension. Then just edit the files, no restart is needed.”
“There's a simple method you can use with nginx and /etc/hosts”
Show 1 more
“nginx with a simple auth username/password is what I use for non technical people.”
Static file speed · 2
Commenters say it serves static content fast enough that one avoided caching entirely.
“static content on a nginx site can be served lightning fast”
“Since Nginx performs extremely well with static files, I have been able to avoid caching altogether.”
Battle-tested · 3
Commenters see it as proven, reliable software that is impressive on its own.
“nginx is battletested”
“My takeaway from this though is that nginx is pretty impressive on its own.”
Show 1 more
“nginx has been a huge part of my professional and personal life.”
Flexible config · 3
Its configuration supports more than lighter servers, including header filtering and auth redirects.
“I used it for a long time but the configuration of nginx just allows for more stuff.”
“Set proxy_pass_request_headers off, and then explicitly proxy_set_header each individual header”
Show 1 more
“using an auth redirect in nginx to a simple view in django”
Light on hardware · 2
It runs comfortably on home PCs and low-cost VPSes alongside other services.
“run dozens of services including email, nginx and various game servers on it”
“my desktop pc running nginx”
Caveats and dissent
Stagnant features · 1
One commenter says it has not progressed in years, with no metrics or ACME certs, and switched to Traefik.
“Nginx was there like 15 years ago and it feels it has been stuck there with no progress ever since.”
Config quirks · 1
The "if" directive behaves inconsistently with the otherwise declarative config.
“I use nginx for homelab things because my use-cases are simple”
WebSocket proxying · 1
One self-hoster found it frustrating for simple fast proxies, especially around WebSockets.
“Apache and NGINX busted pissed me off when creating simple ultra fast proxies, especially around web sockets”
Security worries · 1
One commenter doubts even nginx is safe from quickly exploited 0-days when self-hosting.
“I'm not sure even nginx is safe in all of this.”
Often compared with
1 moved from Apache to nginx
1 moved from nginx to TraefikEnvoy2 comments mention both
1 moved from Envoy to nginx
1 moved from nginx to PingoraHAProxy3 comments mention both
Who recommends it in their own words
Threads where it came up
- My Homelab Setup 3 mentions
- Native Prometheus Integration with Nginx 2 mentions
- A Modern Web App in C 2 mentions
- FastCGI: 30 Years Old and Still the Better Protocol for Reverse Proxies 2 mentions
- Plex vulnerabilities being exploited in the wild to drop a cryptominer 1 mention
- Matthew Prince on why Cloudflare offers a free version and always will (2016) 1 mention
Also written as Nginx, NGINX. Data: nginx.json. Quotes are verbatim; the verdict and theme labels are written by a model from these comments, and every clause links to its sources.
All comments 40
“nginx has been a huge part of my professional and personal life.”
“Nginx was there like 15 years ago and it feels it has been stuck there with no progress ever since.”
“nginx is battletested”
“using NGinx on the front-end and HAProxy on the back-end to do the load balancing and health checks”
“I do just actually use docker compose behind nginx in prod”
“nginx rule to block some crawlers/bots, permit HTTP/2.0 and HTTP/3.0, block all other protocols.”
“there are reasons why we use Nginx in front of it. Distribution, filtering, rate limiting, etc..”
“I used it for a long time but the configuration of nginx just allows for more stuff.”
“Ran it behind identical nginx config”
“I use nginx as my reverse proxy and TLS terminator.”
“Host static content behind nginx”
“I serve a good number of apps from an Nginx reverse proxy.”
“I'm not sure even nginx is safe in all of this.”
“Nginx’s real strength was being able to proxy HTTP using that same mechanism.”
“static content on a nginx site can be served lightning fast”
“Apache and NGINX busted pissed me off when creating simple ultra fast proxies, especially around web sockets”
“run envoy proxy, nginx, or a custom web server to return successful JSON responses to every license check attempt”
“I used AmneziaWG and Nginx proxies.”
“I then use nginx to proxy it.”
“I use NixOS with nginx + acme / caddy, coredns and no docker anywhere.”
“this security update caused 4 hours of downtime to my SaaS”
“just install nginx and enable php+fastcgi extension. Then just edit the files, no restart is needed.”
“My takeaway from this though is that nginx is pretty impressive on its own.”
“There's a simple method you can use with nginx and /etc/hosts”
“Set proxy_pass_request_headers off, and then explicitly proxy_set_header each individual header”
“just using the stuff built into Nginx”
“convert old server nginx to reverse proxy to new server”
“run dozens of services including email, nginx and various game servers on it”
“cron scheduling, DB migrations, nginx configs, log analysis”
“I use bind 9 and nginx for that.”
“I use nginx for homelab things because my use-cases are simple”
“nginx with letsencrypt wildcard”
“putting an Nginx proxy in front and moving our highest-friction dashboards first”
“I handled infrastructure (Docker, nginx, CI/CD, monitoring)”
“I do that in HAProxy or NGinx in maps”
“using an auth redirect in nginx to a simple view in django”
“running behind an Nginx reverse proxy”
“my desktop pc running nginx”
“Since Nginx performs extremely well with static files, I have been able to avoid caching altogether.”
“why not solely Termux with nginx?”