diff --git a/deploy/nginx.conf b/deploy/nginx.conf index 28e306e..c8b1d0a 100644 --- a/deploy/nginx.conf +++ b/deploy/nginx.conf @@ -36,6 +36,25 @@ server { proxy_set_header Host $host; } + # SignalR хаб для live-уведомлений (см. NotificationsHub). + # WebSocket требует upgrade-хедеры и большой read_timeout (иначе nginx + # будет рвать idle-коннекшен каждые 60 сек). access_token приходит как + # query (?access_token=...), Authorization-хедер middleware на API его + # перекладывает в нужный вид до UseAuthentication. + location /hubs/ { + proxy_pass http://api:8080; + proxy_http_version 1.1; + 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_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_read_timeout 86400; # 24h — webSocket долгоживущий + proxy_send_timeout 86400; + proxy_buffering off; + } + location /health { proxy_pass http://api:8080; }