Я создал виртуальную машину Linux в Azure, и на ней есть служба Postgres. Виртуальная машина работает нормально, но у меня возникают отключения.
Виртуальная машина отключает сеансы SSH - они просто прерываются - точно так же, как подключения к Postgres.
Postgres DB - это небольшая база данных для разработки, содержащая около 20 таблиц по 20-30 записей в каждой. ВМ делать нечего.
Раньше у меня не было такого поведения. Я несколько раз воссоздавал эту виртуальную машину с нуля, пробовал следующий для меня регион - Амстердам (находящийся в Германии), а также Дублин - в обоих регионах ситуация одинаковая.
В чем может быть проблема?
Отредактируйте / etc / sshd_config, который является файлом конфигурации на стороне сервера, добавьте эти две опции, если вы хотите предотвратить отключение всех ваших клиентов:
ClientAliveInterval 120
ClientAliveCountMax 720
Первый настраивает сервер на отправку нулевых пакетов клиентам каждые 120 секунд, а второй настраивает сервер на закрытие соединения, если клиент был неактивен в течение 720 интервалов, то есть 720 * 120 = 86400 секунд = 24 часа
На стороне клиента вы также можете включить
Хост *
ClientAliveInterval ...
ClientAliveCountMax ...
ServerAliveInterval ...
Вы можете посмотреть на https://unix.stackexchange.com/a/3027 для более подробного объяснения.
Другой случай может заключаться в том, что вам нужно настроить время простоя в Azure Load Balancer; вы можете прочитать больше на https://azure.microsoft.com/en-us/blog/new-configurable-idle-timeout-for-azure-load-balancer/
Примеры PowerShell
Настройте тайм-аут TCP для общедоступного IP-адреса уровня экземпляра на 15 минут.
Set-AzurePublicIP –PublicIPName webip –VM MyVM ldleTimeoutInMinutes 15
IdleTimeoutInMinutes не является обязательным. Если не задан, тайм-аут по умолчанию составляет 4 минуты. Теперь его значение можно установить от 4 до 30 минут.
Установка времени ожидания простоя при создании конечной точки Azure на виртуальной машине
Get-AzureVM -ServiceName «mySvc» -Name «MyVM1» | Добавить-> AzureEndpoint -Name "HttpIn" -Protocol "tcp" -PublicPort 80 -LocalPort 8080 -IdleTimeoutInMinutes 15 | Обновление-AzureVM