You are browsing a read-only backup copy of Wikitech. The live site can be found at wikitech.wikimedia.org
LVS and Varnish: Difference between revisions
imported>Ema (→Naming) |
imported>Krinkle (Updated diagram File:Wikipedia_webrequest_flow_2020.png) |
||
Line 1: | Line 1: | ||
{{Navigation Wikimedia infrastructure|expand=caching}} | {{Navigation Wikimedia infrastructure|expand=caching}} | ||
== LVS and Varnish infrastructure == | == LVS and Varnish infrastructure == | ||
[[File: | [[File:Wikipedia_webrequest_flow_2020.png|thumb|Wikipedia request flow]] | ||
[[File:WMF Inbound Text Traffic Diagram.svg|750px|Diagram of "text" traffic flow through Wikimedia front edge LVS/nginx/Varnish infrastructure.]] | [[File:WMF Inbound Text Traffic Diagram.svg|750px|Diagram of "text" traffic flow through Wikimedia front edge LVS/nginx/Varnish infrastructure.]] | ||
Revision as of 20:29, 21 April 2020
LVS and Varnish infrastructure
Naming
- eqiad is representative of whichever data centre is currently primary (codfw is similar).
- esams is representative of all caching sites (ulsfo is similar).
- "upload" traffic operates similarly to "text" shown here.
See Varnish and Clusters for more information about those in particular.
Routing
When LVS balances traffic to ports :80 (varnish), and :443 (nginx), it uses a hash of the client IP to help with TCP Fast Open and SSL session persistence respectively.
Within the caching layer (cp#xxx machines), the jump from nginx:443 to varnish:80 is direct on the local host.
However, the jump from varnish:80 (frontend) to varnish:3128 (backend) is different: for that jump, we hash on the URL (and other req meta-data) when balancing to the backends to divide the cache space among all machines, and thus the request typically moves from one machine to another within the same cluster.