# nginx.conf events {} # nginx master process gets a default 'main' VM # a new top-level configuration block receives all configuration for this main VM wasm { module proxywasm_sablier_plugin /wasm/sablierproxywasm.wasm; } error_log /dev/stdout info; # each nginx worker process is able to instantiate wasm modules in its subsystems http { access_log /dev/stdout; # internal docker resolver, see /etc/resolv.conf on proxy container resolver 127.0.0.11 valid=1s ipv6=off; server { listen 8080; location /dynamic/whoami { proxy_wasm proxywasm_sablier_plugin '{ "sablier_url": "sablier:10000", "names": ["docker_classic_e2e-whoami-1"], "session_duration": "1m", "dynamic": { "display_name": "Dynamic Whoami", "theme": "hacker-terminal" } }'; set $proxy_pass_host whoami:80$request_uri; proxy_pass http://$proxy_pass_host; proxy_set_header Host localhost:8080; # e2e test compliance } location /blocking/whoami { wasm_socket_read_timeout 60s; # Blocking hangs the request proxy_wasm proxywasm_sablier_plugin '{ "sablier_url": "sablier:10000", "names": ["docker_classic_e2e-whoami-1"], "session_duration": "1m", "blocking": { "timeout": "30s" } }'; set $proxy_pass_host whoami:80$request_uri; proxy_pass http://$proxy_pass_host; proxy_set_header Host localhost:8080; # e2e test compliance } location /multiple/whoami { proxy_wasm proxywasm_sablier_plugin '{ "sablier_url": "sablier:10000", "names": ["docker_classic_e2e-whoami-1", "docker_classic_e2e-nginx-1"], "session_duration": "1m", "dynamic": { "display_name": "Multiple Whoami" } }'; proxy_pass http://whoami:80$request_uri; proxy_set_header Host localhost:8080; # e2e test compliance } location /multiple/nginx { proxy_wasm proxywasm_sablier_plugin '{ "sablier_url": "sablier:10000", "names": ["docker_classic_e2e-whoami-1", "docker_classic_e2e-nginx-1"], "session_duration": "1m", "dynamic": { "display_name": "Multiple Whoami" } }'; set $proxy_pass_host nginx:80$request_uri; proxy_pass http://$proxy_pass_host; proxy_set_header Host localhost:8080; # e2e test compliance } location /healthy/nginx { proxy_wasm proxywasm_sablier_plugin '{ "sablier_url": "sablier:10000", "names": ["docker_classic_e2e-nginx-1"], "session_duration": "1m", "dynamic": { "display_name": "Healthy Nginx" } }'; set $proxy_pass_host nginx:80$request_uri; proxy_pass http://$proxy_pass_host; proxy_set_header Host localhost:8080; # e2e test compliance } } }