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