WEBrick: RequestURITooLarge: should I update or use a different server?

风流意气都作罢 提交于 2020-01-09 11:11:46

问题


I currently have:

$ 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

The problem I'm having is I'm using openID for auth and getting the following error:

[2011-11-30 13:18:19] ERROR WEBrick::HTTPStatus::RequestURITooLarge

In the browser:

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

How can I fix this? Can I update WEBrick or do I really need to use a different web server?

Thanks


回答1:


In Ruby 1.9.3. source, it says that MAX_URI_LENGTH = 2083. That means that the latest version of Webrick can't handle urls longer that this. And that's what the WEBrick::HTTPStatus::RequestURITooLarge exception is telling you.

The solution therefore is to use a different web server. One of the most favourite ones is Thin:

sudo gem install thin

cd to/your/rails/app

thin -h

thin -a localhost start



回答2:


Like said here, you could change the MAX_URI_LENGTH using this code:

WEBrick::HTTPRequest.const_set("MAX_URI_LENGTH", 10240)



回答3:


I see you've tried unicorn: have you tried running it through bundler? Add:

gem :unicorn

to your Gemfile and run:

bundle exec unicorn_rails

to start the server and browse to http://localhost:8080.



来源:https://stackoverflow.com/questions/8333158/webrick-requesturitoolarge-should-i-update-or-use-a-different-server

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!