Alek's Blog

Blog Posts

These my Blog Posts are mainly to have some all day commands available 🫢.

Diagram: HAProxy routing TCP connections from client devices based on TLS SNI to different backends, rejecting non-TLS connections

How does SNI Routing work in HAProxy

Learn how HAProxy container uses TLS Server Name Indication (SNI) to route encrypted TCP connections without decrypting them — enabling multiple services like Nextcloud and XMPP to share port 443.

How does SNI Routing work in HAProxy

mergelog-rs: Rewriting a Year-2000 C Tool in Rust — and Making It 2.26× Faster

A Rust rewrite of mergelog 4.5, a C tool from 2000 that merges Apache log files chronologically. Six optimizations — a k-way heap merge, a hand-rolled CLF parser, String buffer reuse, mimalloc, 4 MiB read buffers with SIMD newline search, and zstd support — took the Rust binary from slower than the original to 2.26× faster.

mergelog-rs: Rewriting a Year-2000 C Tool in Rust — and Making It 2.26× Faster

AWFFull 4.0.0 — Modernising a 2008 Web Log Analyser

AWFFull 4.0.0 brings a long-overdue overhaul to a C-based web server log analyser forked from Webalizer: PCRE2 replaces EOL libpcre, libmaxminddb replaces the deprecated GeoIP .dat format, new ASN statistics show traffic by network operator, and optional Intel Hyperscan, mimalloc, and XXH3 deliver measurable performance gains on large logs. The release also adds a full GitLab CI/CD pipeline, .deb/.rpm packages, a multi-stage container image, updated browser and bot detection lists, and 100%-complete translations for 6 languages.

AWFFull 4.0.0 — Modernising a 2008 Web Log Analyser

AWFFull in the Cloud: Shipping Logs to Object Storage and Running in Containers

A practical guide to shipping web server access logs to AWS S3 or Azure Blob Storage using Fluent Bit, Vector, or Filebeat/Logstash — including persistent buffering, retry configuration, concurrent write safety, and log loss prevention. Covers running AWFFull as a stateless container against object storage logs and serving the generated reports as a static website.

AWFFull in the Cloud: Shipping Logs to Object Storage and Running in Containers
Diagram: OpenShift Route and Router directing client requests to a specific pod via a session cookie for sticky sessions, bypassing the Service

Session stickiness in OpenShift

How OpenShift and Kubernetes handle session stickiness via HAProxy cookie-based routing.

Session stickiness in OpenShift

Building a native file upload handler for Caddy v2

How I built caddyv2-upload, a native file upload handler for Caddy v2 written in Go — the problem it solves, and how it works.

Building a native file upload handler for Caddy v2