WEBrick:RequestURITooLarge:我应该更新或使用其他服务器吗?

AnA*_*ice 7 ruby-on-rails webrick omniauth ruby-on-rails-3

我目前有:

$ rails s
=> Booting WEBrick
=> Rails 3.0.9 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-11-30 13:18:00] INFO  WEBrick 1.3.1
[2011-11-30 13:18:00] INFO  ruby 1.9.2 (2011-02-18) [x86_64-darwin10.8.0]
[2011-11-30 13:18:00] INFO  WEBrick::HTTPServer#start: pid=4204 port=3000
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是我使用openID进行身份验证并收到以下错误:

[2011-11-30 13:18:19] ERROR WEBrick::HTTPStatus::RequestURITooLarge
Run Code Online (Sandbox Code Playgroud)

在浏览器中:

Request-URI Too Large
WEBrick::HTTPStatus::RequestURITooLarge
WEBrick/1.3.1 (Ruby/1.9.2/2011-02-18) at macbook-pro.local:3000
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?我可以更新WEBrick还是我真的需要使用其他Web服务器?

谢谢

Mar*_*oda 8

在Ruby 1.9.3中.来源,它说MAX_URI_LENGTH = 2083.这意味着最新版本的Webrick无法处理更长的网址.这就是WEBrick :: HTTPStatus :: RequestURITooLarge异常告诉你的内容.

因此,解决方案是使用不同的Web服务器.其中最受欢迎的是Thin:

sudo gem install thin

cd to/your/rails/app

thin -h

thin -a localhost start
Run Code Online (Sandbox Code Playgroud)


Ant*_* O. 5

就像这里所说的,您可以MAX_URI_LENGTH使用以下代码更改:

WEBrick::HTTPRequest.const_set("MAX_URI_LENGTH", 10240)
Run Code Online (Sandbox Code Playgroud)