Strip CRLF from entrypoint scripts in backend/frontend images, use Docker DNS in staging nginx config, and wait for healthy app services before nginx. Co-authored-by: Cursor <cursoragent@cursor.com>
52 lines
1.6 KiB
Plaintext
52 lines
1.6 KiB
Plaintext
# HTTP only — local dev and IP-based staging (no TLS).
|
|
# Use with: docker compose and map host port e.g. 8080:80 or 8088:80
|
|
#
|
|
# Dynamic proxy_pass via Docker DNS (127.0.0.11) so nginx starts even if
|
|
# backend/frontend containers are not up yet (static upstream blocks fail at boot).
|
|
|
|
resolver 127.0.0.11 valid=10s ipv6=off;
|
|
|
|
server {
|
|
listen 80;
|
|
listen [::]:80;
|
|
server_name _;
|
|
|
|
client_max_body_size 50M;
|
|
|
|
location / {
|
|
set $frontend_upstream http://frontend:3000;
|
|
proxy_pass $frontend_upstream;
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection 'upgrade';
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
proxy_cache_bypass $http_upgrade;
|
|
proxy_read_timeout 300;
|
|
proxy_connect_timeout 300;
|
|
}
|
|
|
|
location /api {
|
|
set $backend_upstream http://backend:3000;
|
|
proxy_pass $backend_upstream;
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection 'upgrade';
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
proxy_cache_bypass $http_upgrade;
|
|
proxy_read_timeout 300;
|
|
proxy_connect_timeout 300;
|
|
}
|
|
|
|
location /health {
|
|
access_log off;
|
|
return 200 "healthy\n";
|
|
add_header Content-Type text/plain;
|
|
}
|
|
}
|