Почему таблица сессий django растет автоматически

Я разрабатываю проект django, используя nginx на продакшене. Но когда я запускаю свой сервер nginx, таблица django_session в mysql начинает расти. При каждом обновлении я вижу все больше строк в таблице. Почему это происходит? Есть ли способ остановить это?

enter image description here

Вот мои настройки django.

А вот мои настройки nginx conf:

# configuration of the server
server {
# the port your site will be served on
listen 80;
# the domain name it will serve for
server_name example.com;
charset utf-8;

# max upload size
client_max_body_size 75M; # adjust to taste

# Django media
location /media {
alias C:/Users/Administrator/Documents/mydjangoproj/media; # your Django project's media files - amend as required
}

location /static {
alias C:/Users/Administrator/Documents/mydjangoproj/static; # your Django project's static files - amend as required
}

# Finally, send all non-media requests to the Django server.
location / {
proxy_pass http://localhost:8080; 
}

}

Ладно, я наконец-то разобрался. Это не имеет никакого отношения к веб-серверу nginx. Проверка здоровья моего балансировщика нагрузки приложений AWS посылала запрос каждые 5 секунд на мой веб-сайт.

Я применил два шага:

1-) Я увеличил значение интервала до 300 секунд и значение таймаута до 120 секунд в конфигурации проверки здоровья (это их максимальные значения). Таким образом, они не делают частых запросов к серверу, что значительно увеличивает размер таблицы django_sessions.

2-) Я начал очищать истекшие сессии в таблице django_sessions. Есть несколько способов справиться с этим:

a-) В MySQL вы можете вручную запустить следующий sql:

DELETE FROM mydatabase.django_session where expire_date<now()

b-) В главном каталоге проекта Django вы можете вручную выполнить следующую команду в терминале:

python manage.py clearsessions

c-) Одну из этих команд можно поместить в сценарий оболочки и запланировать его периодическое выполнение (допустим, раз в день).

На данный момент я предпочитаю команду python (пункт 2). Когда моя пользовательская база вырастет, а проект станет больше, я смогу подумать об автоматизации этого ручного процесса (последний пункт).

Вернуться на верх