user nginx; worker_processes auto; error_log /var/log/nginx/error.log debug; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; server_names_hash_bucket_size 128; resolver ${dns_server}; log_format main '$remote_addr - $remote_user - $server_name $host [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer"' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; server { listen 443 default_server ssl; ssl_certificate /cert.pem; ssl_certificate_key /key.pem; location / { return 200 'Private API URL not implemented.'; add_header Content-Type text/html; } } %{ for apiDomain, apiUrl in apis ~} server { listen 443 ssl; ssl_certificate /cert.pem; ssl_certificate_key /key.pem; server_name ${apiDomain}; location / { proxy_set_header X-Upstream-Domain $server_name; proxy_set_header Referer $server_name; proxy_set_header x-apigw-api-id ${split(".", apiUrl)[0]}; set $endpointUrl ${endpoint_url}; set $stage ${split("/", apiUrl)[1]}; proxy_pass https://$endpointUrl/$stage; } } %{ endfor ~} }