#nginx #cookies #webserver
#nginx #файлы cookie #веб-сервер
Вопрос:
Я пытаюсь реализовать решение, чтобы определить, было ли время простоя X
в минутах между двумя запросами.
Для этого я планирую использовать следующий подход.
- Сначала установите файл cookie со стороны приложения. Время истечения срока действия этого файла cookie равно
X
минутам. - Всякий
nginx
раз, когда есть запрос , я буду проверять, прошло ли время истечения срока действия файла cookie или файл cookie доступен. - Если файл cookie доступен и срок его действия не истек, я снова обновлю время истечения в
X
минутах. В противном случае удалите файл cookie. - На стороне сервера я могу проверить доступность файла cookie и, если он доступен, я могу сделать вывод, что предыдущий запрос был выполнен в течение
X
нескольких минут.
Для реализации этого решения мне понадобятся некоторые фрагменты кода, как показано ниже.
if cookie-exists and cookie.expirytime gt; currentTime Set-Cookie: MY_COOKIE=SOMEVAL; Max-Age=X*60; Secure; HttpOnly else Drop-Cookie MY_COOKIE endif
Как я могу реализовать эту проверку условий и модификацию файлов cookie в nginx? Можно ли без lua
этого обойтись ?
Я не хочу реализовывать эту логику на стороне приложения, потому что — через nginx обслуживается несколько приложений, и я хочу сохранить общую для всех логику. Если пользователь использует какое-либо из приложений, файл cookie должен быть обновлен.
Ответ №1:
Браузеры не отправляют файлы cookie с истекшим сроком действия, поэтому Nginx никогда их не получит. Потенциально вы можете установить 2 файла cookie: один, срок действия которого истекает, и другой, который идентифицирует постоянных посетителей.
Комментарии:
1. Как я могу обновить метку времени для файла cookie? Я имею в виду — истекает время.