{"slug": "nginx", "name": "nginx", "category": "networking", "category_name": "Networking and VPN", "description": "Open-source web server, reverse proxy, load balancer, and HTTP cache.", "recommenders": 12, "commenters": 43, "warners": 4, "score": 14.374, "rising": 3.71, "first": "2025-11-03", "latest": "2026-10-27", "why": "HN commenters use it as a battle-tested reverse proxy and TLS terminator for self-hosted services and for serving static content very fast.", "why_is_quote": false, "has_verdict": true, "sentiment": {"recommend": 12, "neutral": 29, "compare": 1, "warn": 4}, "spark": [1, 1, 1, 0, 1, 1, 0, 2, 0, 2, 0, 3], "listed": true, "loved": ["Reverse proxying", "Simple setup"], "caveat": "Stagnant features", "short_quote": "nginx has been a huge part of my professional and personal life.", "icon": true, "domain": null, "github_repo": null, "official_url": "https://nginx.org", "pricing": "open source", "aliases": ["nginx", "Nginx", "NGINX"], "verdict": [{"text": "HN commenters use it as a battle-tested reverse proxy and TLS terminator for self-hosted services", "cites": [{"id": 802576113, "item_id": 50161007, "url": "https://news.ycombinator.com/item?id=50161007", "by": "clundin22", "date": "2026-10-20", "stance": "recommend", "quote": "nginx is battletested", "excerpt": "I use a raspberry pi and nginx to forward my jellyfin over Tailscale. This works really well, Tailscale is low touch and nginx is battletested. Jellyfin appears as a local service to other devices and I manage the raspberry pi with NixOS which makes the setup easy and deployable. Just plug in the pre imaged raspberry pi.", "context": "", "use_case": "forwarding Jellyfin over Tailscale", "switched_from": "", "story": "Plex vulnerabilities being exploited in the wild to drop a cryptominer"}, {"id": 799951760, "item_id": 49996985, "url": "https://news.ycombinator.com/item?id=49996985", "by": "TheBozzCL", "date": "2026-10-07", "stance": "neutral", "quote": "I use nginx as my reverse proxy and TLS terminator.", "excerpt": "I self-host my own DNS over TLS for domain-level adblocking. Maybe not the wisest decision, but it's working well so far and it doesn't require a lot of maintenance now that I've refined the setup. I use a DNS registrar and certificate that support wildcards. That way, I don't have to leak my DoT subdomain and I gain some obfuscation. Android's Private DNS option doesn't support alternate ports, so I'm forced to use ", "context": "self-hosts DNS over TLS", "use_case": "reverse proxy, TLS termination", "switched_from": "", "story": "System-level ad-blocking in Android"}, {"id": 795989889, "item_id": 49749368, "url": "https://news.ycombinator.com/item?id=49749368", "by": "g_host", "date": "2026-09-18", "stance": "neutral", "quote": "I serve a good number of apps from an Nginx reverse proxy.", "excerpt": "I love Hister so much. I ran it for most of this year but encountered some problems with it I couldn't fix and thus have not had it hooked up to anything since June when I finally couldn't take it anymore. In short, I serve a good number of apps from an Nginx reverse proxy. Maybe 25% of them are exposed to the WWW while everything else is limited to the LAN but I still get valid TLS for all of it. Hister, though, kep", "context": "Self-hosts apps behind an Nginx reverse proxy", "use_case": "reverse proxy for apps", "switched_from": "", "story": "Hister: A private search engine for the pages you visit and the files you keep"}]}, {"text": " and for serving static content very fast.", "cites": [{"id": 787393728, "item_id": 49212108, "url": "https://news.ycombinator.com/item?id=49212108", "by": "strenholme", "date": "2026-08-07", "stance": "recommend", "quote": "static content on a nginx site can be served lightning fast", "excerpt": "I have a low cost VPS (actually two in two different pre-AI datacenters) and it runs fine. I use nginx to serve the web pages, and the content is about 99% static content. The vBulletin and PHPbb style forums have issues with slowdown (I haven\u2019t had a forum since 2015; even back then those forums were overrun with spambots), but static content on a nginx site can be served lightning fast.", "context": "runs low-cost VPS", "use_case": "serving static websites", "switched_from": "", "story": "99% of My Website Traffic Is Bots"}, {"id": 743884976, "item_id": 46492811, "url": "https://news.ycombinator.com/item?id=46492811", "by": "susam", "date": "2026-01-04", "stance": "recommend", "quote": "Since Nginx performs extremely well with static files, I have been able to avoid caching altogether.", "excerpt": "> [...] what problem were you solving with the SSG part of that solution? Why would you choose to pregenerate a bunch of stuff which might never get used any time anyone comments or updates your website, when you have the compute and processes to generate HTML from markdown and comments on demand? I was not trying to solve a specific problem. This is a hobby project and my choices were driven mostly by personal prefe", "context": "hobby site owner", "use_case": "serving static site", "switched_from": "", "story": "Jeffgeerling.com has been Migrated to Hugo"}]}, {"text": " The main caveats are that it feels stagnant, without built-in metrics or ACME certificates,", "cites": [{"id": 804078144, "item_id": 50254884, "url": "https://news.ycombinator.com/item?id=50254884", "by": "photios", "date": "2026-10-27", "stance": "warn", "quote": "Nginx was there like 15 years ago and it feels it has been stuck there with no progress ever since.", "excerpt": "> Nginx / envoy should be your default choice for most use cases. Nginx was there like 15 years ago and it feels it has been stuck there with no progress ever since. No metrics, no ACME certs... I moved to Traefik and never looked back.", "context": "", "use_case": "reverse proxy", "switched_from": "", "story": "Native Prometheus Integration with Nginx"}]}, {"text": " and that its config has quirks such as the \"if\" directive.", "cites": [{"id": 756793984, "item_id": 47299624, "url": "https://news.ycombinator.com/item?id=47299624", "by": "philsnow", "date": "2026-03-08", "stance": "neutral", "quote": "I use nginx for homelab things because my use-cases are simple", "excerpt": "I agree with you that they're more or less equal. I don't like the idea of my reverse proxy dealing with letsencrypt for me, personally, but that's just a preference. One tricky thing about nginx though, from the \"If is evil\" nginx wiki [0]: > The if directive is part of the rewrite module which evaluates instructions imperatively. On the other hand, NGINX configuration in general is declarative. At some point due to", "context": "runs a homelab; has used nginx at work", "use_case": "homelab reverse proxy", "switched_from": "", "story": "My Homelab Setup"}]}], "praise": [{"label": "Reverse proxying", "summary": "Commenters front many self-hosted apps with it for proxying, TLS termination, rate limiting and filtering.", "quotes": [{"id": 795989889, "item_id": 49749368, "url": "https://news.ycombinator.com/item?id=49749368", "by": "g_host", "date": "2026-09-18", "stance": "neutral", "quote": "I serve a good number of apps from an Nginx reverse proxy.", "excerpt": "I love Hister so much. I ran it for most of this year but encountered some problems with it I couldn't fix and thus have not had it hooked up to anything since June when I finally couldn't take it anymore. In short, I serve a good number of apps from an Nginx reverse proxy. Maybe 25% of them are exposed to the WWW while everything else is limited to the LAN but I still get valid TLS for all of it. Hister, though, kep", "context": "Self-hosts apps behind an Nginx reverse proxy", "use_case": "reverse proxy for apps", "switched_from": "", "story": "Hister: A private search engine for the pages you visit and the files you keep"}, {"id": 799951760, "item_id": 49996985, "url": "https://news.ycombinator.com/item?id=49996985", "by": "TheBozzCL", "date": "2026-10-07", "stance": "neutral", "quote": "I use nginx as my reverse proxy and TLS terminator.", "excerpt": "I self-host my own DNS over TLS for domain-level adblocking. Maybe not the wisest decision, but it's working well so far and it doesn't require a lot of maintenance now that I've refined the setup. I use a DNS registrar and certificate that support wildcards. That way, I don't have to leak my DoT subdomain and I gain some obfuscation. Android's Private DNS option doesn't support alternate ports, so I'm forced to use ", "context": "self-hosts DNS over TLS", "use_case": "reverse proxy, TLS termination", "switched_from": "", "story": "System-level ad-blocking in Android"}, {"id": 801081584, "item_id": 50067599, "url": "https://news.ycombinator.com/item?id=50067599", "by": "Aldipower", "date": "2026-10-13", "stance": "neutral", "quote": "there are reasons why we use Nginx in front of it. Distribution, filtering, rate limiting, etc..", "excerpt": "> CGI gives you a single web server that calls your business logic directly. It's clear who does what. One could simply put a Node.js server directly on the line. And then it is crystal clear who calls the business logic. I mean, there are reasons why we use Nginx in front of it. Distribution, filtering, rate limiting, etc.. BTW, the cgi-bin competitor back in the days was JavaScript too with the Netscape Communicati", "context": "", "use_case": "reverse proxy in front of Node.js", "switched_from": "", "story": "A Modern Web App in C"}]}, {"label": "Simple setup", "summary": "Simple setups work well, such as PHP via FastCGI, local custom domains, or basic auth file sharing.", "quotes": [{"id": 775047760, "item_id": 48440485, "url": "https://news.ycombinator.com/item?id=48440485", "by": "Maksadbek", "date": "2026-06-07", "stance": "recommend", "quote": "just install nginx and enable php+fastcgi extension. Then just edit the files, no restart is needed.", "excerpt": "I use bunch of PHP files for personal/work stuff. Because the setup is very easy: just install nginx and enable php+fastcgi extension. Then just edit the files, no restart is needed. Also I don't need frontend and backend. Just echo html in php file :)", "context": "", "use_case": "serving PHP files", "switched_from": "", "story": "Learn PHP in 2026 (Yes, Really)"}, {"id": 767549680, "item_id": 47971855, "url": "https://news.ycombinator.com/item?id=47971855", "by": "firefoxd", "date": "2026-04-30", "stance": "recommend", "quote": "There's a simple method you can use  with nginx and /etc/hosts", "excerpt": "There's a simple method you can use with nginx and /etc/hosts, I wrote about it couple days ago [0]. I used it for an internal demo recently and realized that a new breed of devs have never seen a non localhost url run locally. [0]: https://idiallo.com/blog/say-no-to-localhost3000-use-custom-domains", "context": "", "use_case": "custom local domains instead of ports", "switched_from": "", "story": "I Got Sick of Remembering Port Numbers"}, {"id": 738987200, "item_id": 46186700, "url": "https://news.ycombinator.com/item?id=46186700", "by": "Bender", "date": "2025-12-07", "stance": "recommend", "quote": "nginx with a simple auth username/password is what I use for non technical people.", "excerpt": "nginx with a simple auth username/password is what I use for non technical people. For some of my lawyers I managed to get them to use SFTP with WinSCP so we could send things back and forth for edits. Using nginx I keep files off commercial leaky spying AI infected platforms that make pinky-promise lies.", "context": "shares files with lawyers", "use_case": "sharing sensitive files", "switched_from": "", "story": "Ask HN: What's your go to for sharing sensitive files with non tech people?"}]}, {"label": "Static file speed", "summary": "Commenters say it serves static content fast enough that one avoided caching entirely.", "quotes": [{"id": 787393728, "item_id": 49212108, "url": "https://news.ycombinator.com/item?id=49212108", "by": "strenholme", "date": "2026-08-07", "stance": "recommend", "quote": "static content on a nginx site can be served lightning fast", "excerpt": "I have a low cost VPS (actually two in two different pre-AI datacenters) and it runs fine. I use nginx to serve the web pages, and the content is about 99% static content. The vBulletin and PHPbb style forums have issues with slowdown (I haven\u2019t had a forum since 2015; even back then those forums were overrun with spambots), but static content on a nginx site can be served lightning fast.", "context": "runs low-cost VPS", "use_case": "serving static websites", "switched_from": "", "story": "99% of My Website Traffic Is Bots"}, {"id": 743884976, "item_id": 46492811, "url": "https://news.ycombinator.com/item?id=46492811", "by": "susam", "date": "2026-01-04", "stance": "recommend", "quote": "Since Nginx performs extremely well with static files, I have been able to avoid caching altogether.", "excerpt": "> [...] what problem were you solving with the SSG part of that solution? Why would you choose to pregenerate a bunch of stuff which might never get used any time anyone comments or updates your website, when you have the compute and processes to generate HTML from markdown and comments on demand? I was not trying to solve a specific problem. This is a hobby project and my choices were driven mostly by personal prefe", "context": "hobby site owner", "use_case": "serving static site", "switched_from": "", "story": "Jeffgeerling.com has been Migrated to Hugo"}]}, {"label": "Battle-tested", "summary": "Commenters see it as proven, reliable software that is impressive on its own.", "quotes": [{"id": 802576113, "item_id": 50161007, "url": "https://news.ycombinator.com/item?id=50161007", "by": "clundin22", "date": "2026-10-20", "stance": "recommend", "quote": "nginx is battletested", "excerpt": "I use a raspberry pi and nginx to forward my jellyfin over Tailscale. This works really well, Tailscale is low touch and nginx is battletested. Jellyfin appears as a local service to other devices and I manage the raspberry pi with NixOS which makes the setup easy and deployable. Just plug in the pre imaged raspberry pi.", "context": "", "use_case": "forwarding Jellyfin over Tailscale", "switched_from": "", "story": "Plex vulnerabilities being exploited in the wild to drop a cryptominer"}, {"id": 774834096, "item_id": 48427131, "url": "https://news.ycombinator.com/item?id=48427131", "by": "jarym", "date": "2026-06-06", "stance": "recommend", "quote": "My takeaway from this though is that nginx is pretty impressive on its own.", "excerpt": "I love seeing stuff like this that would probably not exist if not for LLMs making exploring these kinds of ideas relatively cheap and quick to do. My takeaway from this though is that nginx is pretty impressive on its own. Also this stuck out: It's meant to be an alternative to nginx and Caddy, and the design bet is about configuration. Those servers give you a declarative config language - location blocks, rewrite ", "context": "", "use_case": "web server", "switched_from": "", "story": "Zeroserve: A zero-config web server you can script with eBPF"}, {"id": 804188848, "item_id": 50261803, "url": "https://news.ycombinator.com/item?id=50261803", "by": "jon128", "date": "2026-10-27", "stance": "recommend", "quote": "nginx has been a huge part of my professional and personal life.", "excerpt": "Yeah, I'm with you 92% that the majority shouldn't try to implement a reverse-proxy themselves. The other 8% is, some people should do such a thing because learning for them and sometimes for all of us results from stories of failure, and surprising stories of success too. The reverse-proxies implemented in Rust (aided by Rocq of Rust) in my larger circles were written in-house for their respective platforms. These c", "context": "production infrastructure engineer", "use_case": "production traffic, reverse proxy, K8s ingress", "switched_from": "Envoy", "story": "Native Prometheus Integration with Nginx"}]}, {"label": "Flexible config", "summary": "Its configuration supports more than lighter servers, including header filtering and auth redirects.", "quotes": [{"id": 801001856, "item_id": 50062616, "url": "https://news.ycombinator.com/item?id=50062616", "by": "Levitating", "date": "2026-10-12", "stance": "recommend", "quote": "I used it for a long time but the configuration of nginx just allows for more stuff.", "excerpt": "I used it for a long time but the configuration of nginx just allows for more stuff. I have my own configuration template for nginx: https://git.levitati.ng/Levitating/nginx.conf", "context": "", "use_case": "web server", "switched_from": "lighttpd", "story": "A Modern Web App in C"}, {"id": 767242545, "item_id": 47952659, "url": "https://news.ycombinator.com/item?id=47952659", "by": "nostrademons", "date": "2026-04-29", "stance": "neutral", "quote": "Set proxy_pass_request_headers off, and then explicitly proxy_set_header each individual header", "excerpt": "Had to Google since it's been almost 20 years since I used nginx directly: https://serverfault.com/questions/1033131/filter-to-only-pass-specific-headers-by-nginx-reverse-proxy Set proxy_pass_request_headers off, and then explicitly proxy_set_header each individual header you want to forward to the variable representing it in nginx config. Or just use CloudFlare Tunnel, which gives you a bunch of other DDoS and abuse", "context": "", "use_case": "reverse proxy header whitelisting", "switched_from": "", "story": "FastCGI: 30 Years Old and Still the Better Protocol for Reverse Proxies"}, {"id": 754446210, "item_id": 47152888, "url": "https://news.ycombinator.com/item?id=47152888", "by": "dec0dedab0de", "date": "2026-02-25", "stance": "neutral", "quote": "using an auth redirect in nginx to a simple view in django", "excerpt": "i like it, but I think i would rather have a proxy, or atleast an auth redirect to those different tools. I used to have flower at myapp.com/flower using an auth redirect in nginx to a simple view in django that made sure it was an admin user. I think if you can make that setup easier to leverage existing tools that would be nicer than rebuilding everything.", "context": "", "use_case": "auth redirect", "switched_from": "", "story": "Show HN: Django Control Room \u2013 All Your Tools Inside the Django Admin"}]}, {"label": "Light on hardware", "summary": "It runs comfortably on home PCs and low-cost VPSes alongside other services.", "quotes": [{"id": 760526112, "item_id": 47532882, "url": "https://news.ycombinator.com/item?id=47532882", "by": "drnick1", "date": "2026-03-26", "stance": "neutral", "quote": "run dozens of services including email, nginx and various game servers on it", "excerpt": "That little PC should be able to run a lot of additional stuff in addition to the packet filter. My setup is similar, but I use an old gaming PC instead, and run dozens of services including email, nginx and various game servers on it. It does not break a sweat.", "context": "runs an old gaming PC as home server", "use_case": "web server on home server", "switched_from": "", "story": "My home network observes bedtime with OpenBSD and pf"}, {"id": 746223040, "item_id": 46638940, "url": "https://news.ycombinator.com/item?id=46638940", "by": "superkuh", "date": "2026-01-15", "stance": "neutral", "quote": "my desktop pc running nginx", "excerpt": "> hundreds of requests per day Does this matter? I can handle hundreds of requests per day with no issue on a home cable modem connection and my desktop pc running nginx. In fact I do and have since the 56k days. With an actual server or VPS with a big pipe in a datacenter this should literally be below noticing in terms of cost. I would characterize this response to normal public website traffic as more harmful than", "context": "has self-hosted a website since the 56k days", "use_case": "serving public website", "switched_from": "", "story": "Ask HN: One IP, multiple unrealistic locations worldwide hitting my website"}]}], "caveats": [{"label": "Stagnant features", "summary": "One commenter says it has not progressed in years, with no metrics or ACME certs, and switched to Traefik.", "quotes": [{"id": 804078144, "item_id": 50254884, "url": "https://news.ycombinator.com/item?id=50254884", "by": "photios", "date": "2026-10-27", "stance": "warn", "quote": "Nginx was there like 15 years ago and it feels it has been stuck there with no progress ever since.", "excerpt": "> Nginx / envoy should be your default choice for most use cases. Nginx was there like 15 years ago and it feels it has been stuck there with no progress ever since. No metrics, no ACME certs... I moved to Traefik and never looked back.", "context": "", "use_case": "reverse proxy", "switched_from": "", "story": "Native Prometheus Integration with Nginx"}]}, {"label": "Config quirks", "summary": "The \"if\" directive behaves inconsistently with the otherwise declarative config.", "quotes": [{"id": 756793984, "item_id": 47299624, "url": "https://news.ycombinator.com/item?id=47299624", "by": "philsnow", "date": "2026-03-08", "stance": "neutral", "quote": "I use nginx for homelab things because my use-cases are simple", "excerpt": "I agree with you that they're more or less equal. I don't like the idea of my reverse proxy dealing with letsencrypt for me, personally, but that's just a preference. One tricky thing about nginx though, from the \"If is evil\" nginx wiki [0]: > The if directive is part of the rewrite module which evaluates instructions imperatively. On the other hand, NGINX configuration in general is declarative. At some point due to", "context": "runs a homelab; has used nginx at work", "use_case": "homelab reverse proxy", "switched_from": "", "story": "My Homelab Setup"}]}, {"label": "WebSocket proxying", "summary": "One self-hoster found it frustrating for simple fast proxies, especially around WebSockets.", "quotes": [{"id": 784532419, "item_id": 49033276, "url": "https://news.ycombinator.com/item?id=49033276", "by": "austin-cheney", "date": "2026-07-24", "stance": "warn", "quote": "Apache and NGINX busted pissed me off when creating simple ultra fast proxies, especially around web sockets", "excerpt": "My hobby is self-hosting. * I have a dedicated server at the house where I run nearly a dozen services via docker compose. * I wrote my own audio app for playing my self hosted mp3s because everything I found on the App Store was shit. I wanted something like Winamp: a simple media player followed by a playlist of thousands of items that works equally on desktop and iPhone. https://github.com/prettydiff/mp3-master-li", "context": "self-hosting hobbyist", "use_case": "web proxies", "switched_from": "", "story": "Ask HN: Share Your Eccentric Hobby"}]}, {"label": "Security worries", "summary": "One commenter doubts even nginx is safe from quickly exploited 0-days when self-hosting.", "quotes": [{"id": 794258608, "item_id": 49641163, "url": "https://news.ycombinator.com/item?id=49641163", "by": "59nadir", "date": "2026-09-10", "stance": "warn", "quote": "I'm not sure even nginx is safe in all of this.", "excerpt": "It's becoming an increasingly bad time to be hosting anything on your own, having to worry about whichever 0-day the clankers are going to find and/or exploit within minutes of it being patched. I'm not sure even nginx is safe in all of this. I used to think there was software that should be basically safe but I'm not sure hosting anything (open-source) yourself anymore (i.e. directly participating in the Internet on", "context": "", "use_case": "self-hosting web server", "switched_from": "", "story": "I think I hate the internet"}]}], "who": [{"by": "jon128", "context": "production infrastructure engineer", "url": "https://news.ycombinator.com/item?id=50261803", "date": "2026-10-27"}, {"by": "Bender", "context": "runs tiny hobby sites", "url": "https://news.ycombinator.com/item?id=50140967", "date": "2026-10-18"}, {"by": "TheBozzCL", "context": "self-hosts DNS over TLS", "url": "https://news.ycombinator.com/item?id=49996985", "date": "2026-10-07"}, {"by": "jdboyd", "context": "runs a $5 VPS", "url": "https://news.ycombinator.com/item?id=49990355", "date": "2026-10-07"}, {"by": "g_host", "context": "Self-hosts apps behind an Nginx reverse proxy", "url": "https://news.ycombinator.com/item?id=49749368", "date": "2026-09-18"}, {"by": "strenholme", "context": "runs low-cost VPS", "url": "https://news.ycombinator.com/item?id=49212108", "date": "2026-08-07"}, {"by": "guessmyname", "context": "works in Big Tech", "url": "https://news.ycombinator.com/item?id=48988714", "date": "2026-07-20"}, {"by": "collinmanderson", "context": "migrates websites between servers", "url": "https://news.ycombinator.com/item?id=47820809", "date": "2026-04-18"}, {"by": "drnick1", "context": "runs an old gaming PC as home server", "url": "https://news.ycombinator.com/item?id=47532882", "date": "2026-03-26"}, {"by": "ErneX", "context": "homelab user", "url": "https://news.ycombinator.com/item?id=47308157", "date": "2026-03-09"}, {"by": "philsnow", "context": "runs a homelab; has used nginx at work", "url": "https://news.ycombinator.com/item?id=47299624", "date": "2026-03-08"}, {"by": "acidburnNSA", "context": "homelab owner", "url": "https://news.ycombinator.com/item?id=47299376", "date": "2026-03-08"}], "tags": ["for homelabs", "for static sites", "for low-cost VPS", "for PHP sites"], "use_cases": ["reverse proxy", "web server", "production traffic, reverse proxy, k8s ingress", "forwarding jellyfin over tailscale", "front-end caching and proxy", "blocking bots"], "compared": [{"slug": "apache", "name": "Apache", "co": 7, "switched_from": 1, "switched_to": 0}, {"slug": "caddy", "name": "Caddy", "co": 5, "switched_from": 0, "switched_to": 0}, {"slug": "traefik", "name": "Traefik", "co": 2, "switched_from": 0, "switched_to": 1}, {"slug": "envoy", "name": "Envoy", "co": 2, "switched_from": 1, "switched_to": 0}, {"slug": "redis", "name": "Redis", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "jellyfin", "name": "Jellyfin", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "pingora", "name": "Pingora", "co": 1, "switched_from": 0, "switched_to": 1}, {"slug": "haproxy", "name": "HAProxy", "co": 3, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=47298743", "title": "My Homelab Setup", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=50213502", "title": "Native Prometheus Integration with Nginx", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=50058528", "title": "A Modern Web App in C", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=47950510", "title": "FastCGI: 30 Years Old and Still the Better Protocol for Reverse Proxies", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=50152321", "title": "Plex vulnerabilities being exploited in the wild to drop a cryptominer", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=50138087", "title": "Matthew Prince on why Cloudflare offers a free version and always will (2016)", "mentions": 1}], "sentiment_by_month": {"2025-11": {"recommend": 1, "neutral": 4}, "2025-12": {"recommend": 1, "neutral": 1}, "2026-01": {"compare": 1, "recommend": 1, "neutral": 2}, "2026-02": {"neutral": 3}, "2026-03": {"neutral": 5, "recommend": 1}, "2026-04": {"neutral": 3, "recommend": 1}, "2026-05": {}, "2026-06": {"recommend": 2, "warn": 1, "neutral": 2}, "2026-07": {"neutral": 2, "warn": 1}, "2026-08": {"recommend": 2}, "2026-09": {"warn": 1, "neutral": 1}, "2026-10": {"neutral": 6, "recommend": 3, "warn": 1}}, "quotes": [{"id": 804188848, "item_id": 50261803, "url": "https://news.ycombinator.com/item?id=50261803", "by": "jon128", "date": "2026-10-27", "stance": "recommend", "quote": "nginx has been a huge part of my professional and personal life.", "excerpt": "Yeah, I'm with you 92% that the majority shouldn't try to implement a reverse-proxy themselves. The other 8% is, some people should do such a thing because learning for them and sometimes for all of us results from stories of failure, and surprising stories of success too. The reverse-proxies implemented in Rust (aided by Rocq of Rust) in my larger circles were written in-house for their respective platforms. These c", "context": "production infrastructure engineer", "use_case": "production traffic, reverse proxy, K8s ingress", "switched_from": "Envoy", "story": "Native Prometheus Integration with Nginx"}, {"id": 804078144, "item_id": 50254884, "url": "https://news.ycombinator.com/item?id=50254884", "by": "photios", "date": "2026-10-27", "stance": "warn", "quote": "Nginx was there like 15 years ago and it feels it has been stuck there with no progress ever since.", "excerpt": "> Nginx / envoy should be your default choice for most use cases. Nginx was there like 15 years ago and it feels it has been stuck there with no progress ever since. No metrics, no ACME certs... I moved to Traefik and never looked back.", "context": "", "use_case": "reverse proxy", "switched_from": "", "story": "Native Prometheus Integration with Nginx"}, {"id": 802576113, "item_id": 50161007, "url": "https://news.ycombinator.com/item?id=50161007", "by": "clundin22", "date": "2026-10-20", "stance": "recommend", "quote": "nginx is battletested", "excerpt": "I use a raspberry pi and nginx to forward my jellyfin over Tailscale. This works really well, Tailscale is low touch and nginx is battletested. Jellyfin appears as a local service to other devices and I manage the raspberry pi with NixOS which makes the setup easy and deployable. Just plug in the pre imaged raspberry pi.", "context": "", "use_case": "forwarding Jellyfin over Tailscale", "switched_from": "", "story": "Plex vulnerabilities being exploited in the wild to drop a cryptominer"}, {"id": 802255472, "item_id": 50140967, "url": "https://news.ycombinator.com/item?id=50140967", "by": "Bender", "date": "2026-10-18", "stance": "recommend", "quote": "using NGinx on the front-end and HAProxy on the back-end to do the load balancing and health checks", "excerpt": "At the moment two large VM's using NGinx on the front-end and HAProxy on the back-end to do the load balancing and health checks. NGinx and HAProxy communicate with each other over a socket thus taking the network out of the picture. NGinx caches files to a tmpfs ram disk. The back-end HAProxy communicates over VPNs to the origin servers. I've automated scaling up edges but I still have work to do calculating the dyn", "context": "runs tiny hobby sites", "use_case": "front-end caching and proxy", "switched_from": "", "story": "Matthew Prince on why Cloudflare offers a free version and always will (2016)"}, {"id": 801808258, "item_id": 50113016, "url": "https://news.ycombinator.com/item?id=50113016", "by": "steezeburger", "date": "2026-10-16", "stance": "neutral", "quote": "I do just actually use docker compose behind nginx in prod", "excerpt": "I like to have consistent architecture across all my services, and I like to see and configure everything in (mostly) one place. If you're running a single go binary, sure do whatever, but if you're running a go binary, and a *arr stack, and a bookmarking service, home assistant, frigate, etc, it gets out of hand pretty quickly. You trade a bit of upfront setup (I mean barely now in the age of LLMs) for easier automa", "context": "", "use_case": "reverse proxy", "switched_from": "", "story": "What I self-host"}, {"id": 801643728, "item_id": 50102733, "url": "https://news.ycombinator.com/item?id=50102733", "by": "Bender", "date": "2026-10-15", "stance": "neutral", "quote": "nginx rule to block some crawlers/bots, permit HTTP/2.0 and HTTP/3.0, block all other protocols.", "excerpt": "robots.txt does not block bots, it is just a suggestion. There are no legal teeth behind robots.txt and AI training bots can and do just ignore it. There are a myriad of methods to actually block bots, here is just one of them (and it will block Google's crawler as their http library is out of date). I use the ban variable to put them in a different access log and dump their IP into NFTables ipsets. This is mostly fo", "context": "runs small sites", "use_case": "blocking bots", "switched_from": "", "story": "One in Five Websites Blocks an AI Crawler"}, {"id": 801081584, "item_id": 50067599, "url": "https://news.ycombinator.com/item?id=50067599", "by": "Aldipower", "date": "2026-10-13", "stance": "neutral", "quote": "there are reasons why we use Nginx in front of it. Distribution, filtering, rate limiting, etc..", "excerpt": "> CGI gives you a single web server that calls your business logic directly. It's clear who does what. One could simply put a Node.js server directly on the line. And then it is crystal clear who calls the business logic. I mean, there are reasons why we use Nginx in front of it. Distribution, filtering, rate limiting, etc.. BTW, the cgi-bin competitor back in the days was JavaScript too with the Netscape Communicati", "context": "", "use_case": "reverse proxy in front of Node.js", "switched_from": "", "story": "A Modern Web App in C"}, {"id": 801001856, "item_id": 50062616, "url": "https://news.ycombinator.com/item?id=50062616", "by": "Levitating", "date": "2026-10-12", "stance": "recommend", "quote": "I used it for a long time but the configuration of nginx just allows for more stuff.", "excerpt": "I used it for a long time but the configuration of nginx just allows for more stuff. I have my own configuration template for nginx: https://git.levitati.ng/Levitating/nginx.conf", "context": "", "use_case": "web server", "switched_from": "lighttpd", "story": "A Modern Web App in C"}, {"id": 800399137, "item_id": 50024946, "url": "https://news.ycombinator.com/item?id=50024946", "by": "phillipseamore", "date": "2026-10-09", "stance": "neutral", "quote": "Ran it behind identical nginx config", "excerpt": "I just took an old PHP site I used to run (no framework or libraries) and had codex transpile it to rust. Ran it behind identical nginx config, just switching out php-fpm's socket for the rust/tokio one. Rust was way worse, so I let codex time the performance resulting in it opting for micro-caching everything and then we got about comparable rps and latency - but those improvements would all help in PHP as well.", "context": "", "use_case": "web server for benchmarks", "switched_from": "", "story": "Which Programming Language Can Handle the Most Users on a $12 Server? [video]"}, {"id": 799951760, "item_id": 49996985, "url": "https://news.ycombinator.com/item?id=49996985", "by": "TheBozzCL", "date": "2026-10-07", "stance": "neutral", "quote": "I use nginx as my reverse proxy and TLS terminator.", "excerpt": "I self-host my own DNS over TLS for domain-level adblocking. Maybe not the wisest decision, but it's working well so far and it doesn't require a lot of maintenance now that I've refined the setup. I use a DNS registrar and certificate that support wildcards. That way, I don't have to leak my DoT subdomain and I gain some obfuscation. Android's Private DNS option doesn't support alternate ports, so I'm forced to use ", "context": "self-hosts DNS over TLS", "use_case": "reverse proxy, TLS termination", "switched_from": "", "story": "System-level ad-blocking in Android"}, {"id": 799845680, "item_id": 49990355, "url": "https://news.ycombinator.com/item?id=49990355", "by": "jdboyd", "date": "2026-10-07", "stance": "neutral", "quote": "Host static content behind nginx", "excerpt": "Here are a few things I do: Host static content behind nginx Run filestash as a partial GoogleDrive replacement (I use it for sharing files with other people, like deliverables), files place on an S3 compatible object store. Run vaultwarder for myself and some family members. Run a container registry service backed by an s3 compatible object store. Run a django web application I wrote for my own use. However, it stor", "context": "runs a $5 VPS", "use_case": "static content hosting", "switched_from": "", "story": "Ask HN: What do you run on a $5 VPS that's worth keeping online 24/7?"}, {"id": 795989889, "item_id": 49749368, "url": "https://news.ycombinator.com/item?id=49749368", "by": "g_host", "date": "2026-09-18", "stance": "neutral", "quote": "I serve a good number of apps from an Nginx reverse proxy.", "excerpt": "I love Hister so much. I ran it for most of this year but encountered some problems with it I couldn't fix and thus have not had it hooked up to anything since June when I finally couldn't take it anymore. In short, I serve a good number of apps from an Nginx reverse proxy. Maybe 25% of them are exposed to the WWW while everything else is limited to the LAN but I still get valid TLS for all of it. Hister, though, kep", "context": "Self-hosts apps behind an Nginx reverse proxy", "use_case": "reverse proxy for apps", "switched_from": "", "story": "Hister: A private search engine for the pages you visit and the files you keep"}, {"id": 794258608, "item_id": 49641163, "url": "https://news.ycombinator.com/item?id=49641163", "by": "59nadir", "date": "2026-09-10", "stance": "warn", "quote": "I'm not sure even nginx is safe in all of this.", "excerpt": "It's becoming an increasingly bad time to be hosting anything on your own, having to worry about whichever 0-day the clankers are going to find and/or exploit within minutes of it being patched. I'm not sure even nginx is safe in all of this. I used to think there was software that should be basically safe but I'm not sure hosting anything (open-source) yourself anymore (i.e. directly participating in the Internet on", "context": "", "use_case": "self-hosting web server", "switched_from": "", "story": "I think I hate the internet"}, {"id": 787913680, "item_id": 49244605, "url": "https://news.ycombinator.com/item?id=49244605", "by": "dofm", "date": "2026-08-10", "stance": "recommend", "quote": "Nginx\u2019s real strength was being able to proxy HTTP using that same mechanism.", "excerpt": "Side note! Nginx was by no means the first web server to use a non-forking mechanism, nor the first open source web server to do so. Certainly Zeus (which was closed source) was earlier and very useful in this sort ofnapplication, and so was thttpd (which still exists as Merecat). I used thttpd quite a lot for single box applications. Non-forking httpd servers using select() were a popular little coding challenge for", "context": "", "use_case": "HTTP proxy", "switched_from": "", "story": "Meta Muse Glimmer \u2013 open weights 30B local coding model"}, {"id": 787393728, "item_id": 49212108, "url": "https://news.ycombinator.com/item?id=49212108", "by": "strenholme", "date": "2026-08-07", "stance": "recommend", "quote": "static content on a nginx site can be served lightning fast", "excerpt": "I have a low cost VPS (actually two in two different pre-AI datacenters) and it runs fine. I use nginx to serve the web pages, and the content is about 99% static content. The vBulletin and PHPbb style forums have issues with slowdown (I haven\u2019t had a forum since 2015; even back then those forums were overrun with spambots), but static content on a nginx site can be served lightning fast.", "context": "runs low-cost VPS", "use_case": "serving static websites", "switched_from": "", "story": "99% of My Website Traffic Is Bots"}, {"id": 784532419, "item_id": 49033276, "url": "https://news.ycombinator.com/item?id=49033276", "by": "austin-cheney", "date": "2026-07-24", "stance": "warn", "quote": "Apache and NGINX busted pissed me off when creating simple ultra fast proxies, especially around web sockets", "excerpt": "My hobby is self-hosting. * I have a dedicated server at the house where I run nearly a dozen services via docker compose. * I wrote my own audio app for playing my self hosted mp3s because everything I found on the App Store was shit. I wanted something like Winamp: a simple media player followed by a playlist of thousands of items that works equally on desktop and iPhone. https://github.com/prettydiff/mp3-master-li", "context": "self-hosting hobbyist", "use_case": "web proxies", "switched_from": "", "story": "Ask HN: Share Your Eccentric Hobby"}, {"id": 783819425, "item_id": 48988714, "url": "https://news.ycombinator.com/item?id=48988714", "by": "guessmyname", "date": "2026-07-20", "stance": "neutral", "quote": "run envoy proxy, nginx, or a custom web server to return successful JSON responses to every license check attempt", "excerpt": "> what are some stuff that people are interested in reverse engineering ? Software license/key verification. While I work in Big Tech, I still crack over 90% of the apps I install on my personal computers. The only reason is that (1) I can do it, and (2) it\u2019s fun. I learned to reverse engineer software when I was a teenager mostly out of necessity because I couldn\u2019t afford to buy a legitimate software license or API ", "context": "works in Big Tech", "use_case": "faking license check responses", "switched_from": "", "story": "Reverse-engineering is cheap now"}, {"id": 780906258, "item_id": 48806641, "url": "https://news.ycombinator.com/item?id=48806641", "by": "canntstand", "date": "2026-07-06", "stance": "neutral", "quote": "I used AmneziaWG and Nginx proxies.", "excerpt": "Hi everyone! I wanted to share a project I\u2019ve been working on called ServeHub-2. It\u2019s designed as an out-of-the-box solution for anyone looking for a ready-to-use, hybrid self-hosted architecture with a complete monitoring and backup system. The project is tailored for Ubuntu, Debian, and Arch Linux. GitHub Repository: https://github.com/canntstand/ServeHub-2 I completely automated the setup via Ansible, Docker conta", "context": "", "use_case": "proxying", "switched_from": "", "story": "I built an out-of-the-box self-hosting infrastructure. How can I improve it?"}, {"id": 778653585, "item_id": 48665849, "url": "https://news.ycombinator.com/item?id=48665849", "by": "nekusar", "date": "2026-06-24", "stance": "neutral", "quote": "I then use nginx to proxy it.", "excerpt": "BTW I use this and a systemd unit file and SSH tunnel my Jellyfin to a public VPS to its local host. I then use nginx to proxy it. Because its a unit file, sshd reconnects if my ISP's IP changes. Does so within 30s. Also hides my ISP IP in case I have to turn it off. And no data is effectively on the VPS. Its just a mostly empty machine.", "context": "", "use_case": "reverse proxy", "switched_from": "", "story": "A Practical Guide to SSH Tunnels: Local and Remote Port Forwarding"}, {"id": 776787377, "item_id": 48549211, "url": "https://news.ycombinator.com/item?id=48549211", "by": "packetlost", "date": "2026-06-15", "stance": "neutral", "quote": "I use NixOS with nginx + acme / caddy, coredns and no docker anywhere.", "excerpt": "I use NixOS with nginx + acme / caddy, coredns and no docker anywhere. It's extremely homogeneous, easy to scale out (add another flake output, deploy to a new server, update DNS records). You could easily automate some of that with more nix, but I don't bother because that's already only like 50 lines of config. I have a strong preference for renting bare metal and it has served me extremely well.", "context": "", "use_case": "reverse proxy", "switched_from": "", "story": "What job interviews taught me about Kubernetes"}, {"id": 775444864, "item_id": 48465304, "url": "https://news.ycombinator.com/item?id=48465304", "by": "soulchild37", "date": "2026-06-09", "stance": "warn", "quote": "this security update caused 4 hours of downtime to my SaaS", "excerpt": "Yep, I got affected by this issue, OS should never run automatic update (security update included), this security update caused 4 hours of downtime to my SaaS : https://github.com/phusion/passenger/issues/2662", "context": "Runs a SaaS", "use_case": "web server for SaaS", "switched_from": "", "story": "Ubuntu 24.04/26.04 Nginx Security Update Breaks Many Dynamic Modules"}, {"id": 775047760, "item_id": 48440485, "url": "https://news.ycombinator.com/item?id=48440485", "by": "Maksadbek", "date": "2026-06-07", "stance": "recommend", "quote": "just install nginx and enable php+fastcgi extension. Then just edit the files, no restart is needed.", "excerpt": "I use bunch of PHP files for personal/work stuff. Because the setup is very easy: just install nginx and enable php+fastcgi extension. Then just edit the files, no restart is needed. Also I don't need frontend and backend. Just echo html in php file :)", "context": "", "use_case": "serving PHP files", "switched_from": "", "story": "Learn PHP in 2026 (Yes, Really)"}, {"id": 774834096, "item_id": 48427131, "url": "https://news.ycombinator.com/item?id=48427131", "by": "jarym", "date": "2026-06-06", "stance": "recommend", "quote": "My takeaway from this though is that nginx is pretty impressive on its own.", "excerpt": "I love seeing stuff like this that would probably not exist if not for LLMs making exploring these kinds of ideas relatively cheap and quick to do. My takeaway from this though is that nginx is pretty impressive on its own. Also this stuck out: It's meant to be an alternative to nginx and Caddy, and the design bet is about configuration. Those servers give you a declarative config language - location blocks, rewrite ", "context": "", "use_case": "web server", "switched_from": "", "story": "Zeroserve: A zero-config web server you can script with eBPF"}, {"id": 767549680, "item_id": 47971855, "url": "https://news.ycombinator.com/item?id=47971855", "by": "firefoxd", "date": "2026-04-30", "stance": "recommend", "quote": "There's a simple method you can use  with nginx and /etc/hosts", "excerpt": "There's a simple method you can use with nginx and /etc/hosts, I wrote about it couple days ago [0]. I used it for an internal demo recently and realized that a new breed of devs have never seen a non localhost url run locally. [0]: https://idiallo.com/blog/say-no-to-localhost3000-use-custom-domains", "context": "", "use_case": "custom local domains instead of ports", "switched_from": "", "story": "I Got Sick of Remembering Port Numbers"}, {"id": 767242545, "item_id": 47952659, "url": "https://news.ycombinator.com/item?id=47952659", "by": "nostrademons", "date": "2026-04-29", "stance": "neutral", "quote": "Set proxy_pass_request_headers off, and then explicitly proxy_set_header each individual header", "excerpt": "Had to Google since it's been almost 20 years since I used nginx directly: https://serverfault.com/questions/1033131/filter-to-only-pass-specific-headers-by-nginx-reverse-proxy Set proxy_pass_request_headers off, and then explicitly proxy_set_header each individual header you want to forward to the variable representing it in nginx config. Or just use CloudFlare Tunnel, which gives you a bunch of other DDoS and abuse", "context": "", "use_case": "reverse proxy header whitelisting", "switched_from": "", "story": "FastCGI: 30 Years Old and Still the Better Protocol for Reverse Proxies"}, {"id": 767221824, "item_id": 47951364, "url": "https://news.ycombinator.com/item?id=47951364", "by": "tombert", "date": "2026-04-29", "stance": "neutral", "quote": "just using the stuff built into Nginx", "excerpt": "Interesting. Most of the stuff I've done for reverse proxies has been pretty straightforward and just using the stuff built into Nginx, but I have to admit that it wouldn't have even occurred to me to use FastCGI if I needed something more elaborate. I used FastCGI a bit about ten years ago to \"convert\" some C++ code I wrote to work on the web, but admittedly I haven't used it much since then.", "context": "", "use_case": "reverse proxy", "switched_from": "", "story": "FastCGI: 30 Years Old and Still the Better Protocol for Reverse Proxies"}, {"id": 765132945, "item_id": 47820809, "url": "https://news.ycombinator.com/item?id=47820809", "by": "collinmanderson", "date": "2026-04-18", "stance": "neutral", "quote": "convert old server nginx to reverse proxy to new server", "excerpt": "I just want to point out this guide uses many of the same tasks I use when migrating websites between servers while minimizing downtown. - reduce dns ttl (if not doing an ip swap) - rsync website files - rsync /etc/letsencrypt/ ssl certificates - copy over database (if writes don't happen often and database is small enough, this can be done without replica, just go read_only during migration) - test new server by put", "context": "migrates websites between servers", "use_case": "reverse proxy during migration", "switched_from": "", "story": "Migrating from DigitalOcean to Hetzner: From $1,432 to $233 With Zero Downtime"}, {"id": 760526112, "item_id": 47532882, "url": "https://news.ycombinator.com/item?id=47532882", "by": "drnick1", "date": "2026-03-26", "stance": "neutral", "quote": "run dozens of services including email, nginx and various game servers on it", "excerpt": "That little PC should be able to run a lot of additional stuff in addition to the packet filter. My setup is similar, but I use an old gaming PC instead, and run dozens of services including email, nginx and various game servers on it. It does not break a sweat.", "context": "runs an old gaming PC as home server", "use_case": "web server on home server", "switched_from": "", "story": "My home network observes bedtime with OpenBSD and pf"}, {"id": 758111217, "item_id": 47381951, "url": "https://news.ycombinator.com/item?id=47381951", "by": "multidude", "date": "2026-03-14", "stance": "neutral", "quote": "cron scheduling, DB migrations, nginx configs, log analysis", "excerpt": "Infrastructure management mostly \u2014 cron scheduling, DB migrations, nginx configs, log analysis. Things I know how to do but that are slow to type out. But the learning is there: I've used it to go deep on PostgreSQL query planning and indexing in a way I wouldn't have bothered with before. The risk, in my opinion was the opposite of I'd expected \u2014 not learning less, but a lot of shallow things giving an impression of", "context": "", "use_case": "web server configuration", "switched_from": "", "story": "Ask HN: How do you use Coding Agents/CLIs out of coding?"}, {"id": 756930515, "item_id": 47308157, "url": "https://news.ycombinator.com/item?id=47308157", "by": "ErneX", "date": "2026-03-09", "stance": "recommend", "quote": "I use bind 9 and nginx for that.", "excerpt": "I run (among many other VMs) TrueNAS on a VM of an xcp-ng host (Supermicro board with a Xeon and ECC ram). Passing a dedicated SAS controller to it. Before that I was using esxi but migrated all my VMs and hosts to xcp-ng. TrueNAS has been pretty good so far, been running this for many years already. I also have another xcp-ng host for other VMs running on a Dell OptiPlex Micro. OP should configure DNS locally and re", "context": "homelab user", "use_case": "reverse proxy", "switched_from": "", "story": "My Homelab Setup"}, {"id": 756793984, "item_id": 47299624, "url": "https://news.ycombinator.com/item?id=47299624", "by": "philsnow", "date": "2026-03-08", "stance": "neutral", "quote": "I use nginx for homelab things because my use-cases are simple", "excerpt": "I agree with you that they're more or less equal. I don't like the idea of my reverse proxy dealing with letsencrypt for me, personally, but that's just a preference. One tricky thing about nginx though, from the \"If is evil\" nginx wiki [0]: > The if directive is part of the rewrite module which evaluates instructions imperatively. On the other hand, NGINX configuration in general is declarative. At some point due to", "context": "runs a homelab; has used nginx at work", "use_case": "homelab reverse proxy", "switched_from": "", "story": "My Homelab Setup"}, {"id": 756790016, "item_id": 47299376, "url": "https://news.ycombinator.com/item?id=47299376", "by": "acidburnNSA", "date": "2026-03-08", "stance": "neutral", "quote": "nginx with letsencrypt wildcard", "excerpt": "I have something like this, in the same case. I have beefier specs b/c I use it as a daily workstation in addition to running all my stuff. * nginx with letsencrypt wildcard so I have lots of subdomains * No tailscale, just pure wireguard between a few family houses and for remote access * Jellyfin for movies and TV, serving to my Samsung TV via the Tizen jellyfin app * Mopidy holding my music collection, serving to ", "context": "homelab owner", "use_case": "reverse proxy for subdomains", "switched_from": "", "story": "My Homelab Setup"}, {"id": 755487668, "item_id": 47217979, "url": "https://news.ycombinator.com/item?id=47217979", "by": "isanudelhi", "date": "2026-03-02", "stance": "neutral", "quote": "putting an Nginx proxy in front and moving our highest-friction dashboards first", "excerpt": "We liked Next.js, and we built a lot of successful software on it. But over the last year, keeping up with the App Router and debugging opaque cache directives started to feel like a second job. We recently migrated our core SaaS architecture to TanStack Start, dropping our local dev startup time from 12 seconds down to just 2. Here is exactly why we made the switch, and what the numbers look like on the other side. ", "context": "team running a SaaS product", "use_case": "proxy during migration", "switched_from": "", "story": "Next.js 16 vs Tanstack Start (2026): Performance, Memory Leaks and Migration"}, {"id": 754787410, "item_id": 47174213, "url": "https://news.ycombinator.com/item?id=47174213", "by": "macsmax", "date": "2026-02-26", "stance": "neutral", "quote": "I handled infrastructure (Docker, nginx, CI/CD, monitoring)", "excerpt": "My background is Linux systems, I am not a developer. I wanted a service that converts Spotify/Apple Music/YouTube links into universal ones. That meant a FastAPI backend, Next.js frontend, and React Native apps. Three codebases in tech I'd never used. I used Claude to write the application code while I handled infrastructure (Docker, nginx, CI/CD, monitoring). The biggest lesson wasn't about AI generating code, it w", "context": "Linux systems background", "use_case": "infrastructure", "switched_from": "", "story": "I built a cross-platform music app with AI for under \u00a3400"}, {"id": 754581266, "item_id": 47161329, "url": "https://news.ycombinator.com/item?id=47161329", "by": "Bender", "date": "2026-02-25", "stance": "neutral", "quote": "I do that in HAProxy or NGinx in maps", "excerpt": "I've gone through this exercise on my own personal hobby nodes long ago. In my case I was just on an under-powered node for the load but I made sure my rewrite rules were optimized in the virtualserver config vs .htaccess and that I closed all rules with a final L to cease processing rules when matches were found. I also jacked up all the worker/server limits as high as I could go for the memory in the node this was ", "context": "", "use_case": "rewrite rules", "switched_from": "Apache", "story": "Ask HN: Apache prefork under crawler load \u2013 main domains OK, subdomains fail"}, {"id": 754446210, "item_id": 47152888, "url": "https://news.ycombinator.com/item?id=47152888", "by": "dec0dedab0de", "date": "2026-02-25", "stance": "neutral", "quote": "using an auth redirect in nginx to a simple view in django", "excerpt": "i like it, but I think i would rather have a proxy, or atleast an auth redirect to those different tools. I used to have flower at myapp.com/flower using an auth redirect in nginx to a simple view in django that made sure it was an admin user. I think if you can make that setup easier to leverage existing tools that would be nicer than rebuilding everything.", "context": "", "use_case": "auth redirect", "switched_from": "", "story": "Show HN: Django Control Room \u2013 All Your Tools Inside the Django Admin"}, {"id": 748545126, "item_id": 46784070, "url": "https://news.ycombinator.com/item?id=46784070", "by": "robinbaertschi", "date": "2026-01-27", "stance": "neutral", "quote": "running behind an Nginx reverse proxy", "excerpt": "Hi HN, I\u2019m the creator of TypoGuard. I built this specialized engine to help protect brands against typosquatting and phishing domains before they are used in active attacks. The Core Logic: Unlike basic permutation tools, TypoGuard uses a multi-factor risk scoring system (High Risk >= 8 points). The scoring is based on: Domain Metadata: Real-time WHOIS age (domains \u2264 30 days are flagged), MX record presence, and SSL", "context": "", "use_case": "reverse proxy", "switched_from": "", "story": "Show HN: TypoGuard \u2013 A typosquatting monitoring engine with automated reporting"}, {"id": 746223040, "item_id": 46638940, "url": "https://news.ycombinator.com/item?id=46638940", "by": "superkuh", "date": "2026-01-15", "stance": "neutral", "quote": "my desktop pc running nginx", "excerpt": "> hundreds of requests per day Does this matter? I can handle hundreds of requests per day with no issue on a home cable modem connection and my desktop pc running nginx. In fact I do and have since the 56k days. With an actual server or VPS with a big pipe in a datacenter this should literally be below noticing in terms of cost. I would characterize this response to normal public website traffic as more harmful than", "context": "has self-hosted a website since the 56k days", "use_case": "serving public website", "switched_from": "", "story": "Ask HN: One IP, multiple unrealistic locations worldwide hitting my website"}, {"id": 743884976, "item_id": 46492811, "url": "https://news.ycombinator.com/item?id=46492811", "by": "susam", "date": "2026-01-04", "stance": "recommend", "quote": "Since Nginx performs extremely well with static files, I have been able to avoid caching altogether.", "excerpt": "> [...] what problem were you solving with the SSG part of that solution? Why would you choose to pregenerate a bunch of stuff which might never get used any time anyone comments or updates your website, when you have the compute and processes to generate HTML from markdown and comments on demand? I was not trying to solve a specific problem. This is a hobby project and my choices were driven mostly by personal prefe", "context": "hobby site owner", "use_case": "serving static site", "switched_from": "", "story": "Jeffgeerling.com has been Migrated to Hugo"}, {"id": 743709441, "item_id": 46481840, "url": "https://news.ycombinator.com/item?id=46481840", "by": "utopiah", "date": "2026-01-03", "stance": "compare", "quote": "why not solely Termux with nginx?", "excerpt": "Can you please explain why not solely Termux with nginx? I don't understand why Andronix or proot are needed. Actually for a static Website why not just https://f-droid.org/en/packages/net.basov.lws.fdroid/ or more modern https://f-droid.org/en/packages/com.example.flutter_http_server/ ? Anyway glad you had fun.", "context": "", "use_case": "serving static website", "switched_from": "", "story": "Show HN: Vibe Coding a static site on a $25 Walmart Phone"}]}