Sporadic 400 Ошибка неверного запроса nginx / 0.7.67 с Heroku и Rails 3 - PullRequest
4 голосов
/ 02 июля 2011

ОБНОВЛЕНИЕ: Эта ошибка относится к браузеру, специфичному для Chrome.Я нажимал на ссылку около 50 раз в Firefox и IE, и, похоже, я не могу это вызвать.Кроме того, как только это произойдет, я могу переключиться на FF или IE, и он будет хорошо работать с этими двумя.

У меня есть конкретная страница в моем приложении на Rails 3 на heroku, которая загружается нормально на некоторое время.Я могу нажать на ту же страницу, и она загружается без проблем.Но после определенного количества загрузок он неожиданно начинает выдавать ошибку 400 Bad Request Error с nginx / 0.7.67 под ним.

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

Это не то, что происходит локально, поэтому кажется, что это проблема heroku.

Я тоже пытался перезапустить героку, но это не помогает.Единственное, что, кажется, помогает, это дать ему немного времени.

Журналы heroku не дают мне никакой новой информации в отношении ошибок.Кажется, все работает нормально, и тогда я получаю строку, которая заканчивается 727 |https |400, и он просто останавливается.

Я использую https, если это поможет.

Полный журнал ошибок heroku:

[33m2011-07-02T15:25:59+00:00 heroku[nginx]: <-[0m GET /matters/show/34 HTTP/1.1 | 10.212.125.194 | 727 | https | 400

Дайте мне знать, какой код из этогостраница поможет решить эту проблему, если у вас есть идея.

1 Ответ

4 голосов
/ 16 декабря 2011

Так что после долгих перемоток с сотрудниками службы поддержки Heroku мы наконец нашли проблему. Я использовал Datatables в разных местах моего сайта и использовал куки для хранения настроек состояния пользователя. Этот файл cookie становился все длиннее, длиннее и длиннее, когда пользователь перемещался по сайту, пока мой заголовок не превысил максимальный размер заголовка, разрешенный NGINX (8 КБ).

Решение состояло в том, чтобы удалить / упростить этот файл cookie или переключиться с nginx Heroku (бамбук) на стек Heroku, в котором не использовался nginx (кедр).

...