Two days lost to PHP extension mismatches. A container per service, what the shared-folder performance problem costs on a VM, and whether it was worth it.
fail2ban is installed for SSH and left there, but the same brute force runs against every HTTP login on the box — a WordPress admin, a staging basic-auth…
Configuration files are read top to bottom, so location blocks look like they are evaluated that way. They are not: nginx picks the longest matching prefix, then lets…
try_files takes each argument in turn and serves the first that exists, falling through to the last unconditionally. Every front-controller configuration is one line of it, and the…
A week-old server already sees thousands of login attempts a day. Key-only SSH, a firewall, fail2ban and monit — and the recovery plan for locking yourself out.