fix: keep web services up during API rollout

This commit is contained in:
Cauê Faleiros
2026-09-18 12:17:34 -03:00
parent 7605ca9918
commit fbb620bd85

View File

@@ -3,6 +3,11 @@ server {
listen 8080; listen 8080;
server_name ${PUBLIC_HOST}; server_name ${PUBLIC_HOST};
if ($host != ${PUBLIC_HOST}) { return 400; } if ($host != ${PUBLIC_HOST}) { return 400; }
# Resolve through Docker's embedded DNS at request time. This prevents
# Nginx from exiting during a Swarm rollout when the API task is briefly
# unavailable or still creating its database schema.
resolver 127.0.0.11 ipv6=off valid=10s;
set $api_upstream api:8000;
root /usr/share/nginx/html; root /usr/share/nginx/html;
index ${WEB_INDEX}; index ${WEB_INDEX};
@@ -17,7 +22,7 @@ server {
location /api/ { location /api/ {
limit_req zone=api_limit burst=100 nodelay; limit_req zone=api_limit burst=100 nodelay;
limit_req_status 429; limit_req_status 429;
proxy_pass http://api:8000; proxy_pass http://$api_upstream;
proxy_http_version 1.1; proxy_http_version 1.1;
proxy_set_header Host $host; proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Host $host;