# Use Docker's embedded DNS so nginx starts even if upstreams aren't ready yet. # With variables in proxy_pass, hostname resolution is deferred to request time # instead of config parse time — preventing crash loops during slow backend startup. resolver 127.0.0.11 valid=5s; server { listen 8083; server_name localhost; charset utf-8; # Disables server version feedback on pages and in headers server_tokens off; set $meet_backend {{ env "STACK_NAME" }}_backend:8000; set $meet_frontend {{ env "STACK_NAME" }}_app:8080; location @proxy_to_meet_backend { proxy_set_header X-Forwarded-Proto https; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_redirect off; proxy_pass http://$meet_backend; } location @proxy_to_meet_frontend { proxy_set_header X-Forwarded-Proto https; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_redirect off; proxy_pass http://$meet_frontend; } location / { try_files $uri @proxy_to_meet_frontend; } location /api { try_files $uri @proxy_to_meet_backend; } location /admin { try_files $uri @proxy_to_meet_backend; } location /static { try_files $uri @proxy_to_meet_backend; } }