Web acceleration mechanics
You probably might easily count ten or more web accelerators and the list is constantly growing. Besides different features, the proxies vary significantly in their architecture, how do they interact with the operating system and implement various HTTP standards.
Understanding the architecture differences and internals of particular web accelerators helps to make the right decision which one fits better to your needs and to track down complex performance issues and anomalies.
This talk covers following topics on examples of Nginx, Varnish, Apache Traffic Server, HAProxy, H2O, and Tempesta FW:
- How client and backend server connections are managed;
- HTTP message queues and backend server connections failovering in HTTP standards and proxy implementations, and security implications;
- How HTTP/1.x, HTTP/2, and HTTP/3 (QUIC) decoders and parsers interact to each other;
- HPACK and QPACK compression from HTTP/2 and HTTP/3 (QUIC) and when it hurts performance;
- What and how HTTP allows to cache;
- Different caching architectures: mmap(), file cache, and a database;
- Network I/O and TLS optimizations available in some web accelerators and modern Linux kernels;