Nginx on front-end takes requests from users and proxying them to Varnish. Then Varnish checks cache: if it has a cached page for the response it sends the page back if has not, Varnish proxying the request to load balancer Haproxy, which distributes the load between several nodes.

As a base is used MariaDB in master/slave configuration with Redis as object cache.