在SSL + Nginx上,rails authenticate_or_request_with_http_basic不起作用

我已经通过authenticate_or_request_with_http_basic获得了我的Rails 3应用程序中的一个动作。 在我的开发机器上工作正常,但它并没有提示生产服务器上的http_basic用户/密码。

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

我在哪里可以解决这个问题? http basic auth不能通过SSL工作? 还是有一个nginx设置,我需要看看?

TIA

不知道这是否与Rails 3有关。

我刚刚运行Mongrel 1.1.5和Rails 2.3.8时遇到问题

显然,在这个设置中有一个错误,我们的生产机器不提示输入用户名和密码(但在本地工作,因为我们使用的是网页砖)。

在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:in`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的作品!