at master 1.3 kB view raw
1let 2 nginxRoot = "/run/nginx"; 3in 4{ ... }: 5{ 6 name = "nghttpx"; 7 nodes = { 8 webserver = { 9 networking.firewall.allowedTCPPorts = [ 80 ]; 10 systemd.services.nginx = { 11 preStart = '' 12 mkdir -p ${nginxRoot} 13 echo "Hello world!" > ${nginxRoot}/hello-world.txt 14 ''; 15 }; 16 17 services.nginx = { 18 enable = true; 19 virtualHosts.server = { 20 locations."/".root = nginxRoot; 21 }; 22 }; 23 }; 24 25 proxy = { 26 networking.firewall.allowedTCPPorts = [ 80 ]; 27 services.nghttpx = { 28 enable = true; 29 frontends = [ 30 { 31 server = { 32 host = "*"; 33 port = 80; 34 }; 35 36 params = { 37 tls = "no-tls"; 38 }; 39 } 40 ]; 41 backends = [ 42 { 43 server = { 44 host = "webserver"; 45 port = 80; 46 }; 47 patterns = [ "/" ]; 48 params.proto = "http/1.1"; 49 } 50 ]; 51 }; 52 }; 53 54 client = { }; 55 }; 56 57 testScript = '' 58 start_all() 59 60 webserver.wait_for_open_port(80) 61 proxy.wait_for_open_port(80) 62 client.wait_until_succeeds("curl -s --fail http://proxy/hello-world.txt") 63 ''; 64}