Я прохожу курс “от 0 до Linux админа” здесь и столкнулся с проблемой настройки Apache Configuration.
У меня есть сервер WebSocket на Node.js, который работает на порту 6060 за веб-сервером Apache. Когда пользователь заходит на мой сайт, например, www.mydomain.com/app/, ему присваивается уникальный идентификатор, записывается его имя пользователя, время входа и (впоследствии) последнее активное время.
Проблема в том, что когда пользователь закрывает вкладку браузера, Apache сразу получает сигнал FIN, но держит соединение с Node.js открытым еще 30–40 секунд. В результате время последней активности записывается с задержкой, около 35 секунд после того, как пользователь фактически вышел.
Я пробовал включать flushpackets on, настраивать значения тайм-аутов и другие настройки Apache, но ничего не устраняет задержку. Корень проблемы, похоже, в том, что Apache держит соединение открытым до истечения внутреннего тайм-аута I/O, прежде чем разрывает соединение с Node.js.
Код работает отлично на локальном сервере, поэтому проблема явно не в коде. Может кто-то сталкивался с подобной ситуацией и знает, как можно решить эту проблему?