Я запускаю SSE-сервер на VPS, и он работает отлично, никаких проблем, но по причинам масштабируемости мне нужно было переместить его на другой сервер.
Я переместил сервер на Google Cloud Platform / Google Container Engine и Kubernetes / Ingress. Но теперь я столкнулся с тем, что не могу эффективно поддерживать соединение SSE, оно совершенно нестабильно и само закрывает соединения.
Что мне нужно сделать, чтобы запустить SSE сервер над Kubernetes / Ingress?
Я предполагаю, что мой код / программное обеспечение работает идеально, и это не проблема, потому что он отлично работает в Kubernetes, VPS, на моей машине, везде, только не когда я добавляю конфигурацию Ingress, а я делаю это, потому что хочу HTTPS над Kubernetes балансировщик нагрузки.
Похоже, что таймаут Ingress по умолчанию составлял 30 секунд для любого типа соединения, я установил его на 86 400 (в день), и теперь сокет работает нормально.
Вы можете изменить тайм-аут в консоли Google следующим образом:
➜ export BACKEND=xxx-xxx-xxxxxx
➜ gcloud compute backend-services update $BACKEND --global --timeout=86400 # seconds
Updated [https://www.googleapis.com/compute/v1/projects/xxxxxxxxx/global/backendServices/xxx-xxx-xxxxxx].