问题描述
|
我已经在我的Rails 3应用程序中执行了一项操作,该操作由authenticate_or_request_with_http_basic进行了密码保护。在我的开发机器上可以正常工作,但是不会在生产服务器上提示输入http_basic用户名/密码。
整个生产应用程序在Nginx上通过https / SSL运行。
我在哪里寻找解决方案? http基本身份验证是否不能通过SSL工作?还是我需要查看一个Nginx设置?
TIA
解决方法
不知道这是否与Rails 3有关。
我最近在运行Mongrel 1.1.5和Rails 2.3.8时遇到问题
显然,此设置中存在一个错误,即我们的生产机器不提示输入用户名和密码(但可以在本地运行,因为我们使用的是Web-brick)。
在mongrel.log中,我们不断收到此错误:
调用Dispatcher.dispatch #split \'时发生错误,要求为nil
:NilClass>
/usr/local/rvm/gems/ruby-1.8.7-p174/gems/actionpack-2.3.8/lib/action_controller/cgi_process.rb:52:indispatch_cgi \'
/usr/local/rvm/gems/ruby-1.8.7-p174/gems/actionpack-2.3.8/lib/action_controller/dispatcher.rb:101:位于`dispatch_cgi \'中
...
找到修复此Mongrel 1.1.5和Rails 2.3.8所需的猴子补丁,它对我有用。
导致该解决方案的德语站点:http://railssprech.de/,带有2个链接,分别指向2.3.8和2.3.9。
这是2.3.8版本:http://www.pcoder.net/error-calling-dispatcher-dispatch/#axzz1RknBQso2
该补丁说明了为什么发生此错误。检查Rails 3 CGIHandler.dispatch_cgi方法并查看是否存在相同的错误。您可能需要提取Rails 3并对其进行猴子修补。
希望这可以帮助。
顺便说一句:Mongrel 1.1.5和Rails 2.3.5都可以使用!