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