|
|
@@ -15,14 +15,23 @@ server {
|
|
|
try_files $uri $uri/ /index.html;
|
|
|
}
|
|
|
|
|
|
- # API proxy to backend
|
|
|
+ # API proxy to backend with service discovery
|
|
|
location /api/ {
|
|
|
- proxy_pass http://backend:80;
|
|
|
+ # Use resolver for Docker DNS
|
|
|
+ resolver 127.0.0.11 valid=30s;
|
|
|
+ set $backend_endpoint http://backend:80;
|
|
|
+ proxy_pass $backend_endpoint;
|
|
|
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;
|
|
|
|
|
|
+ # Error handling for backend service
|
|
|
+ proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
|
|
|
+ proxy_connect_timeout 5s;
|
|
|
+ proxy_send_timeout 10s;
|
|
|
+ proxy_read_timeout 10s;
|
|
|
+
|
|
|
# Handle CORS headers
|
|
|
add_header Access-Control-Allow-Origin "*" always;
|
|
|
add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" always;
|