Nginx Rate Limiting and Bot Mitigation Without Blocking Real Users

A limit_req block that parses cleanly can still be doing absolutely nothing, or throttling every visitor behind one CDN edge. This guide covers Nginx rate limiting and bot mitigation as they actually behave in production: getting the key right behind a proxy, what burst and nodelay do to your traffic shape, sizing zones correctly, rolling out in dry run mode, and layering bot handling from robots.txt through user agent maps to firewall escalation.

Continue ReadingNginx Rate Limiting and Bot Mitigation Without Blocking Real Users

DirectAdmin PHP-FPM Pools: Why One WordPress Site Takes Down the Others

DirectAdmin gives each user one PHP-FPM pool, not each site. That single design fact explains most of the 502s on a busy shared box. Here is how to find the pool files, size pm.max_children from real memory numbers, set per-site limits that WordPress cannot override, and make the changes survive the next rewrite_confs.

Continue ReadingDirectAdmin PHP-FPM Pools: Why One WordPress Site Takes Down the Others

Optimizing API Calls to Reduce SaaS Costs: Six Levers That Actually Move the Bill

Third-party API spend is the one production signal with no error rate attached to it, which is why it creeps up quietly. This is a working engineer's guide to reducing SaaS API costs by changing the shape of your calls: reading the billing unit before you optimise anything, killing pointless polling with conditional requests and webhooks, collapsing N+1 patterns, caching with stampede protection and per-tenant keys, stopping your own retry amplification, and attributing spend so you can prove the work paid off.

Continue ReadingOptimizing API Calls to Reduce SaaS Costs: Six Levers That Actually Move the Bill

Nginx vs Apache vs Caddy: What Actually Decides It in Real Projects

Benchmarks pick the wrong winner. Here is how Nginx, Apache and Caddy actually differ in production: how each one fails under load, who owns certificate renewal, and where configuration lives when a developer needs to change it. Includes a decision procedure and the mistakes I see most.

Continue ReadingNginx vs Apache vs Caddy: What Actually Decides It in Real Projects

It Works in My Browser: Debugging TLS Certificate Errors in Chains, SANs and Expiry

Your browser shows a padlock and your partner's API client throws "unable to get local issuer certificate". Both are correct. A practical guide to the four things a TLS client actually checks, and to renewal automation that reaches the running server instead of just the disk.

Continue ReadingIt Works in My Browser: Debugging TLS Certificate Errors in Chains, SANs and Expiry

The Complete WordPress Debugging Handbook: Fix Errors, Improve Performance & Secure Your Website Like a Pro

Learn how to debug WordPress like a professional. Discover how to fix common WordPress errors, optimize performance, improve security, troubleshoot plugins, themes, databases, and server issues with this complete step-by-step guide.

Continue ReadingThe Complete WordPress Debugging Handbook: Fix Errors, Improve Performance & Secure Your Website Like a Pro