From 5665a0bc5c9154e3f7cc1df0efbbed22d3204e09 Mon Sep 17 00:00:00 2001 From: Petru Paler Date: Mon, 8 Jan 2024 14:34:35 +0000 Subject: [PATCH] Use varnish to cache wordpress sites. --- hosts/alo-cloud-1/reverse-proxy.nix | 40 +++++++++++++++++------------ 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/hosts/alo-cloud-1/reverse-proxy.nix b/hosts/alo-cloud-1/reverse-proxy.nix index f739f83..eabc37b 100644 --- a/hosts/alo-cloud-1/reverse-proxy.nix +++ b/hosts/alo-cloud-1/reverse-proxy.nix @@ -60,16 +60,9 @@ dynamicConfigOptions = { http = { services = { - alo-cluster = { - loadBalancer = { - servers = [ - { - # edgy over Tailscale - url = "http://100.64.229.126:10080"; - } - ]; - }; - }; + # edgy over Tailscale + alo-cluster.loadBalancer.servers = [{ url = "http://100.64.229.126:10080"; }]; + varnish-cache.loadBalancer.servers = [{ url = "http://localhost:6081"; }]; }; routers = { @@ -88,43 +81,43 @@ ines-paler-net = { entryPoints = "websecure"; rule = "Host(`ines.paler.net`)"; - service = "alo-cluster"; + service = "varnish-cache"; }; coachingfor-me = { entryPoints = "websecure"; rule = "Host(`coachingfor.me`)"; - service = "alo-cluster"; + service = "varnish-cache"; }; coachingfor-work = { entryPoints = "websecure"; rule = "Host(`coachingfor.work`)"; - service = "alo-cluster"; + service = "varnish-cache"; }; petru-ines-paler-net = { entryPoints = "websecure"; rule = "Host(`petru.ines.paler.net`)"; - service = "alo-cluster"; + service = "varnish-cache"; }; liam-paler-net = { entryPoints = "websecure"; rule = "Host(`liam.paler.net`)"; - service = "alo-cluster"; + service = "varnish-cache"; }; tomas-paler-net = { entryPoints = "websecure"; rule = "Host(`tomas.paler.net`)"; - service = "alo-cluster"; + service = "varnish-cache"; }; musictogethersilvercoast-pt = { entryPoints = "websecure"; rule = "Host(`musictogethersilvercoast.pt`)"; - service = "alo-cluster"; + service = "varnish-cache"; }; }; }; @@ -133,4 +126,17 @@ # to make the Souin plugin installable, cf. https://community.traefik.io/t/cant-use-plugins-error-mkdir-plugins-storage-permission-denied/16341/3 systemd.services.traefik.serviceConfig.WorkingDirectory = "/var/lib/traefik"; + + services.varnish = { + enable = true; + http_address = "localhost:6081"; + config = '' + vcl 4.0; + + backend default { + .host = "100.64.229.126"; + .port = "10080"; + } + ''; + }; }