Tag:

Rack Sessions在Chrome中迷失了

我有一个非常简单的应用程序托管在EC2上使用Sinatra构建,在nginx后面提供服务。 问题是,使用Chrome,会话变量在Sinatra中“丢失”。 它不会发生在Firefox中。 这是使用Rack :: Session :: Cookie。 这与此问题类似: Sinatra不会在Chrome上使用重定向来保持会话 任何有关如何在Chrome中解决此问题的见解将不胜感激。

如何在Rails 3项目中包含SSL证书

我开发了一个Rails 3项目,它使用thin作为服务器,以及用于身份validation的Devise和Doorkeeper 我想在我的项目中添加SSL证书。 我已经看到一些post描述了如何在Rails 3项目中使用SSL证书,但没有一个post显示如何在Rails 3项目中添加证书。 我在applicationcontroller.rb启用了config.force_ssl = true ,我尝试启动瘦服务器,如: thin start –ssl 它可以在不添加证书的情况下工作,我现在可以使用https://访问我的网站(从浏览器获取证书未经过validation警告。我希望这是因为我的证书未经CAvalidation)。 最近我看到一篇post展示了如何在Rails 3项目中添加SSL证书; 如何在Rails 3.0中将SSL选项传递到“rails server”? :SSLEnable => true, :SSLVerifyClient => OpenSSL::SSL::VERIFY_NONE, :SSLPrivateKey => OpenSSL::PKey::RSA.new(File.open(current_dir + “/config/certs/server.key”).read), :SSLCertificate => OpenSSL::X509::Certificate.new(File.open(current_dir + “/config/certs/server.crt”).read), :SSLCertName => [ [ “CN”, WEBrick::Utils::getservername ] ] 这是添加证书的正确方法吗? 每次当我尝试启动服务器时,我都需要指定这些选项。 是否有任何其他方法在我的项目配置中包含证书路径(或在我的项目中包含证书),以便每次启动我的服务器时都不需要指定证书路径? 任何帮助表示赞赏….

Http流媒体与瘦&eventmachine

我正在玩EM来实现流媒体和并发。 我遇到了流式传输问题…我运行以下机架应用https://gist.github.com/1394840使用 $ rackup -s thin -p 3000 async_app.ru 在使用$ ab -c 10 -n 20 http://localhost:3000/ ,应用程序似乎接受了parellel请求。 大! 我希望它同时实现流媒体。 当我在Firefox8中测试它时,它运行良好。 使用$ curl -i http://localhost:3000/ ,结果也像预期的那样流式传输! 但后来在IE和Chrome中进行测试时,流式传输失败了,也就是说,三条线路只在请求发出后5秒内一起出现…… 我怀疑如果我错过了浏览器所需的东西? 我注意到没有Transfer-Encoding:chunked在响应头Transfer-Encoding:chunked ,所以它重要吗? 如果是这样,那是Thin的问题吗? 如何使用精简版或Chrome实现流式传输? 谢谢!

如何部署线程安全的异步Rails应用程序?

我已经在网上阅读了大量关于不同版本的ruby和rails中的线程安全性和性能的材料,我想我现在对这些事情了如指掌。 讨论中似乎奇怪的是如何实际部署异步Rails应用程序。 在谈论应用程序中的线程和同步时,人们想要优化两件事: 利用所有CPU内核,最小化RAM使用率 能够在先前的请求等待IO时提供新请求 第1点是人们(正确地)对JRuby感到兴奋的地方。 对于这个问题,我只是想优化第2点。 说这是我的应用程序中唯一的控制器: TheController “hello” end def slow render :text => User.count.to_s end end fast没有IO,每秒可以服务数百或数千个请求,而且必须通过网络发送请求,等待工作完成,然后通过网络接收答案,因此比fast慢得多。 因此,理想的部署将允许数百个请求fast完成,而请求slow等待IO。 围绕Web的讨论似乎缺少的是堆栈的哪一层负责实现这种并发。 thin有一个–threaded标志,它将“在线程中调用机架应用程序[实验]” – 是否为每个传入请求启动一个新线程? 在持续存在并等待传入​​请求的线程中假装机架应用程序实例? 瘦是唯一的方式还是其他人? ruby运行时是否对优化第2点很重要?

Chrome会在我的Rails应用上使用thin要求为SSL选择“证书”

我有一个配置为仅使用SSL的Rails应用程序。 我也有来自StartSSL的免费SSL证书。 我使用thin作为我的Web服务器使用此命令: thin start -p 80 & thin start -p 443 –ssl –ssl-key-file ./.ssl/sslkey.key –ssl-cert-file ./.ssl/sslcert.cert & 这在技术上有效 – 访问我的网站的http版本重定向到https版本。 但是,当我访问我的本地Keychain“选择证书”以validation服务器时,Chrome和Safari都会提示我。 这种行为是不可取的。 如何以不显示此对话框的方式设置瘦身SSL?

有没有办法Rails 3.0.x可以默认使用Thin?

我为我的开发/测试环境中的每个应用程序运行Thin webserver。 当我使用Mongrel和Rails 2.x时,我只需要输入script/server来运行我选择的网络服务器。 但是使用Rails 3,我必须每次都指定Thin。 有没有办法让我的Rails应用程序只需输入rails s而不是rails s thin就可以运行Thin?