更新:这个错误似乎是浏览器特定于Chrome。 我已经在Firefox和IE中点击了大约50次的链接,我似乎无法完成这个任务。 此外,一旦发生,我可以切换到FF或IE,它将在这两个罚款。
我在Heroku上的Rails 3应用程序中有一个特定的页面,加载一段时间。 我可以点击相同的页面,并加载没有问题。 但是在一定数量的加载之后,它突然开始给我一个400错误请求错误,下面是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
让我知道,如果你有一个想法,这个页面的代码将有助于解决这个问题。
所以经过Heroku Support的工作人员,我们终于找到了问题。 我在我的网站周围的各个地方使用数据表,并使用cookie来存储用户状态设置。 随着用户在网站上浏览,cookie越来越长,直到我的报头超过了NGINX(8K)允许的最大报头大小。
解决办法是删除/简化cookie,或者从nginx Heroku(竹子)切换到不使用nginx(雪松)的Heroku堆栈。