2011-04-14 52 views
2

我在我的Rails 3应用程序中得到了一个动作,我正在使用authenticate_or_request_with_http_basic进行pw保护。在我的开发机器上工作良好,但它并没有提示生产服务器上的http_basic用户/密码。Rails authenticate_or_request_with_http_basic无法在SSL + Nginx上工作

整个生产应用程序通过https/SSL在nginx上运行。

我在哪里可以解决这个问题? http基本身份验证不能通过SSL工作?或者是否有我需要看的nginx设置?

TIA

回答

2

不知道这是否涉及到Rails 3

我最近刚刚运行杂种1.1.5和Rails 2.3.8

显然的问题,有一个bug在此设我们的生产机器不会提示用户名和密码(但在本地工作,因为我们使用的是网页砖)。

在mongrel.log我们不断收到此错误:

错误调用Dispatcher.dispatch #split”呼吁为零 :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的作品!