В приложении Rails время от времени было создано множество сеансов по мере роста базы данных производства. В качестве обходного пути я время от времени удаляю сеансы. Я хотел бы исправить эту проблему, но я понятия не имею, как отлаживать подобную ситуацию. Данные сеанса довольно малы, поэтому я могу переключиться на хранилище файлов cookie, но это не решит проблему. Каков наилучший способ отладки такой ситуации? И какова могла быть причина для создания множества новых сеансов?Почему новые сессии создаются все время?
Я единственный пользователь приложения, он работает на локальной виртуальной коробке, но может быть замечен другими. Мой контекст:
- Rails 4.0.0 (не было времени для обновления в последнее время)
- SQLite3
- рубин 1.9.3p547
После задал вопрос, у меня была встреча (так что не активное использование приложения Rails), и когда я вернулся, запрос
sqlite> select created_at, updated_at from sessions where updated_at > "2014-10-17";
показал следующий результат:
2014-10-17 07:49:56.202187|2014-10-17 07:49:56.202187
2014-10-17 07:50:26.039702|2014-10-17 07:50:26.039702
2014-10-17 07:50:56.043092|2014-10-17 07:50:56.043092
2014-10-17 07:51:26.057016|2014-10-17 07:51:26.057016
2014-10-17 07:51:56.163507|2014-10-17 07:51:56.163507
2014-10-17 07:52:26.071406|2014-10-17 07:52:26.071406
2014-10-17 07:52:56.191103|2014-10-17 07:52:56.191103
2014-10-17 07:53:26.070792|2014-10-17 07:53:26.070792
Так что, по-видимому, существует регулярное расписание, когда запросы ведут к новым сеансам. Как я могу найти причину этого?
Обновление: Я интегрировал logging from another answer и теперь записи журнала соответствует записи сеанса. Следующий шаг - найти настоящего отправителя. Является более сложным, потому что я использую брандмауэр и переадресацию портов, поэтому все запросы внутри приложения Rails поступают с одного и того же компьютера (хоста).
Вы используете 'devise' gem? –
Нет, я не знаю. В этом приложении Rails нет аутентификации/авторизации. URL может использовать приложение (но у меня нет признаков того, что это происходит). – mliebelt
Мое первое предположение - это роботы или какой-либо скрипт, опробовавший веб-сайт, тем более, что они создаются равномерно каждые 30 секунд. Попробуйте получить IP-адреса этих запросов , – BroiSatse