Назад | Перейти на главную страницу

Apache регистрирует ошибку HTTP 408, клиент, похоже, теряет сеанс PHP

Я борюсь со странной проблемой, которая «отключает» пользователей и, кажется, случается примерно десять раз в день.

Приложение представляет собой старый проект PHP. Клиент авторизуется; сеанс PHP установлен. Иногда, если клиент ничего не делает, например, Через 2 часа, а затем отправляет новый HTTP-запрос, Apache отвечает HTTP 408 ошибка:

1.2.3.4 - - [17/Apr/2020:12:26:30 +0200] "-" 408 3281 "-" "-"

и пользователь отправляется на страницу входа и должен снова ввести свои учетные данные, теряя свои данные, которые они заполнили в форме и т. д. Я не могу воспроизвести проблему, в большинстве случаев бездействующий клиент может отправить следующий запрашивает даже через 5 часов и не вызывает 408. Это кажется довольно случайным и для всех браузеров.

Я могу воспроизвести ошибку 408, только если я вручную удалю файл сеанса PHP на сервере. Также странно то, что если я это сделаю, я не вижу 408 на панели инструментов разработчика Chrome, а только в журналах Apache.

Тайм-аут сеанса велик (72 часа). Эти параметры настраиваются:

php_value session.gc_maxlifetime 259200
php_value session.gc_divisor 1
php_value session.gc_probability 1
php_value session.cookie_lifetime 0

Теперь я много читал о KeepAlive, но я думаю, что причина не в этом, так как на сайте не так много трафика. И мы говорим о часах, а не о секундах.

Это обычная проблема, и кто-нибудь может указать мне правильное направление?

РЕДАКТИРОВАТЬ:

session_unset() не используется в проекте. session_destroy вызывается только тогда, когда пользователь выходит из системы. Удалив файл сеанса в /var/lib/php/sessions пользователь, конечно, вышел из системы, поэтому он перенаправляется на login.php. Мне кажется, это нормально. Так что я думаю файл сеанса как-то удален.

Я также вижу это в error.log:

[Fri Apr 17 22:42:32.386978 2020] [:error] [pid 15563] [client 1.2.3.4:55104] PHP Notice:  session_start(): ps_files_cleanup_dir: opendir(/var/lib/php/sessions) failed: Permission denied (13) in /var/www/myproject/htdocs/sessionReload.php on line 2, referer: https://myproject/page.php

Строка 2 в sessionReload.php является:

session_start();