deploy(nginx): /hubs/ → API с upgrade-хедерами для WebSocket
Some checks are pending
Some checks are pending
SignalR-клиент на стейдже падал на негоциации — nginx без upgrade-хедеров не пропускал WebSocket-handshake (POST /hubs/notifications/negotiate → 405). Добавлен location /hubs/ с proxy_set_header Upgrade/Connection и proxy_read/send_timeout=24h, иначе nginx рвал бы idle-соединения каждые 60с. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
dd2e1e7af2
commit
2ea30bb30a
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue