diff --git a/nginx/nginx.conf b/nginx/nginx.conf index 12930ca..fecb73e 100644 --- a/nginx/nginx.conf +++ b/nginx/nginx.conf @@ -5,18 +5,15 @@ events { http { client_max_body_size 10m; - upstream backend { - server backend:8000; - } - - upstream frontend { - server frontend:5173; - } - server { listen 80; server_name localhost; + # Use Docker's internal DNS so nginx re-resolves after container restarts + resolver 127.0.0.11 valid=5s; + set $backend_upstream http://backend:8000; + set $frontend_upstream http://frontend:5173; + # OTA firmware files — allow browser (esptool-js) to fetch .bin files directly location /ota/ { root /srv; @@ -31,7 +28,7 @@ http { # API requests → FastAPI backend location /api/ { - proxy_pass http://backend; + proxy_pass $backend_upstream; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; @@ -40,7 +37,7 @@ http { # WebSocket support for MQTT live data location /api/mqtt/ws { - proxy_pass http://backend; + proxy_pass $backend_upstream; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; @@ -49,7 +46,7 @@ http { # Everything else → React frontend (Vite dev server) location / { - proxy_pass http://frontend; + proxy_pass $frontend_upstream; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;