events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; sendfile on; server_tokens off; upstream backend_a { server backend-a:80; } upstream backend_b { server backend-b:80; } upstream backend_c { server backend-c:80; } server { listen 80; server_name _; location / { root /usr/share/nginx/html; try_files $uri $uri/ /index.html; } location /service/a { proxy_pass http://backend_a/; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto http; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location = /demo/a { proxy_pass http://backend_a/; } location /service/b { proxy_pass http://backend_b/; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto http; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /service/c { proxy_pass http://backend_c/; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto http; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location = /healthz { default_type text/plain; return 200 "ok\n"; } } }