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;
|
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 {
|
location /health {
|
||||||
proxy_pass http://api:8080;
|
proxy_pass http://api:8080;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue