62 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| let
 | |
|   nginxRoot = "/run/nginx";
 | |
| in
 | |
|   import ./make-test-python.nix ({...}: {
 | |
|     name  = "nghttpx";
 | |
|     nodes = {
 | |
|       webserver = {
 | |
|         networking.firewall.allowedTCPPorts = [ 80 ];
 | |
|         systemd.services.nginx = {
 | |
|           preStart = ''
 | |
|             mkdir -p ${nginxRoot}
 | |
|             echo "Hello world!" > ${nginxRoot}/hello-world.txt
 | |
|           '';
 | |
|         };
 | |
| 
 | |
|         services.nginx = {
 | |
|           enable = true;
 | |
|           virtualHosts.server = {
 | |
|             locations."/".root = nginxRoot;
 | |
|           };
 | |
|         };
 | |
|       };
 | |
| 
 | |
|       proxy = {
 | |
|         networking.firewall.allowedTCPPorts = [ 80 ];
 | |
|         services.nghttpx = {
 | |
|           enable = true;
 | |
|           frontends = [
 | |
|             { server = {
 | |
|                 host = "*";
 | |
|                 port = 80;
 | |
|               };
 | |
| 
 | |
|               params = {
 | |
|                 tls = "no-tls";
 | |
|               };
 | |
|             }
 | |
|           ];
 | |
|           backends = [
 | |
|             { server = {
 | |
|                 host = "webserver";
 | |
|                 port = 80;
 | |
|               };
 | |
|               patterns = [ "/" ];
 | |
|               params.proto = "http/1.1";
 | |
|             }
 | |
|           ];
 | |
|         };
 | |
|       };
 | |
| 
 | |
|       client = {};
 | |
|     };
 | |
| 
 | |
|     testScript = ''
 | |
|       start_all()
 | |
| 
 | |
|       webserver.wait_for_open_port("80")
 | |
|       proxy.wait_for_open_port("80")
 | |
|       client.wait_until_succeeds("curl -s --fail http://proxy/hello-world.txt")
 | |
|     '';
 | |
|   })
 | 
