News for hackers. Stuff that matters.
Re:Matthew Prince on why Cloudflare offers a free version an... by rpastuszak on Sunday October 18, 2026 @09:10AM (#50140798)
Nice, what’s your setup? How much work was involved?
Re:Matthew Prince on why Cloudflare offers a free version an... by Bender on Sunday October 18, 2026 @09:33AM (#50140967)
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 dynamic/static back-end limits per edge but for my tiny hobby sites I do not foresee needing to automate this any time soon. The edges force level 1 zstd which nullifies many of the bots that slip past my anti-bot methods as they just get gibberish. This also breaks old browsers which I do on purpose as nobody should be visiting a chan site (which I use as a replacement for my old blog) without a fully patched system. I keep additional VM's configured as spares or as "side doors" for friends to use in /etc/hosts in the event some day I attract h8 and vitriol. I use NGinx Geo in combination with FireHOL and a few other git repos to determine who should be allowed to post real time vs. be held in a moderator review queue which has saved me multiple times.

I'm not doing Anycast or GSLB as it is just for a hobby site. If it ever grew in popularity (unlikely) then I would probably just do DNS GSLB in PowerDNS with PowerGSLB.

For me it was not a lot of work because it is a hobby. I'm sure others here could automate this in Anisble, Docker, Podman and probably have. My setup is probably childs-play compared to what others here do professionally.

Re:Matthew Prince on why Cloudflare offers a free version an... by rpastuszak on Thursday October 22, 2026 @05:51AM (#50193284)
Thanks for sharing. Love the zstd trick. I suspect it still works with older (e.g. bs/python based scrapers) but with puppeteer/chrome not so much...