I'm blogging about Emacs, Drupal, php and exciting subjects

· Lars Nielsen

Symfony Login Throttling Behind a Reverse Proxy: Without trusted_proxies, Everyone Shares One IP

CaRMen, the CRM I built for myself, now runs as two public sites: the real instance and a demo. Public means bots find the login endpoint within hours, so in October I added rate limiting to logins and to password-reset emails. The limits themselves took a few lines of Symfony configuration.

Read article Symfony Login Throttling Behind a Reverse Proxy: Without trusted_proxies, Everyone Shares One IP
· Lars Nielsen

A Rollback Plan That Deliberately Isn't One

The version of a database upgrade that fits on a disk with limited free space and the version of a database upgrade that keeps a true instant rollback available turned out to be two different operations. Choosing the one that actually fit meant giving up the other, deliberately, with the tradeoff written down plainly rather than discovered the hard way if it were ever needed.

Read article A Rollback Plan That Deliberately Isn't One
· Lars Nielsen

Postgres Kept Getting OOM-Killed. shared_buffers Was Set to 70% of RAM.

For about a day in August, the Postgres server behind my search engine kept dying. Not slowing down, not timing out: the Linux OOM killer was terminating it, roughly every 20 to 90 minutes at the worst point, and each kill meant a crash-recovery cycle of about 90 seconds while Postgres replayed its write-ahead log.

Read article Postgres Kept Getting OOM-Killed. shared_buffers Was Set to 70% of RAM.
Subscribe to Linkhub