Articles of ruby on rails

乘客3如何实现零停机?

在关于Passenger 3的技术预览文章中,他们讨论了零停机时间: 在Phusion Passenger 3中,我们实现了零宕机Web服务器重启。 Phusion Passenger和Web服务器将在后台重新启动,并且在发生这种情况时,旧的Web服务器实例(使用旧的Phusion Passenger实例)将继续处理请求。 根据我的理解,在使用Passenger 3时,在部署期间没有任何请求被延迟或丢失。 但是从Passenger 3和nginx的testing来看,这是不正确的。 我所经历的是,已经完成的请求已经完成,但是在部署时正在进行的新请求被延迟并等待Passenger产生新的实例。 我期望的是,旧的Passenger实例将继续服务请求,直到新的实例完全准备好接受传入的请求。 我误解了他们的解释还是我有一些不好的configuration? 只是为了澄清,我明白,我可以实现零服务器的停机时间,但在这种情况下,我指的是一个。

在TeamCity中打包安装

我试图在TeamCity中运行一个构build。 我想为unit testing构build的应用程序是用Ruby on Rails编码的。 我configuration了VCS根目录,以便在克隆构build失败后从我的存储库中获取。 这里是: Bundler::GemNotFound: Could not find gem 'devise (= 2.1.0) ruby' in the gems available on this machine. Stacktrace: /usr/local/rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.1.4/lib/bundler/resolver.rb:287:in `resolve' /usr/local/rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.1.4/lib/bundler/resolver.rb:346:in `block in resolve_requirement' /usr/local/rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.1.4/lib/bundler/resolver.rb:344:in `catch' /usr/local/rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.1.4/lib/bundler/resolver.rb:344:in `resolve_requirement' /usr/local/rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.1.4/lib/bundler/resolver.rb:295:in `block in resolve' /usr/local/rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.1.4/lib/bundler/resolver.rb:294:in `reverse_each' /usr/local/rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.1.4/lib/bundler/resolver.rb:294:in `resolve' /usr/local/rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.1.4/lib/bundler/resolver.rb:161:in `start' /usr/local/rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.1.4/lib/bundler/resolver.rb:128:in `block in resolve' /usr/local/rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.1.4/lib/bundler/resolver.rb:127:in `catch' /usr/local/rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.1.4/lib/bundler/resolver.rb:127:in `resolve' /usr/local/rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.1.4/lib/bundler/definition.rb:192:in `resolve' /usr/local/rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.1.4/lib/bundler/definition.rb:127:in […]

使用Passenger和VirtualHosts的多个Rails站点?

我想要做的是从工作中的服务器机器运行多个Rails应用程序。 我们没有多个主机名的框。 我们想要托pipe一些rails应用程序以及我们的php应用程序。 目前用户可以连接http:// computername / app / 。 如何托pipe多个Rails应用程序并保持此结构? 看来Passenger需要使用VirtualHosts,但我只有localhost:80。 是否有可能在单个VirtualHost上托pipe多个Rails应用程序? VirtualHosts有DocumentRoot指令,有没有办法指定哪个主机名目录被监听? 即/ computername /等等/ 希望很清楚。 谢谢。

无法安装libpq-dev,ubuntu 10.10和postgres 9

我需要一些包含在libpq-dev中的postgres 9开发版的头文件来安装pg gem,但是当我执行: sudo apt-get install libpq-dev 我得到的结果是: 以下软件包具有未满足的依赖关系:libpq-dev:取决于:libpq5(= 8.4.7-0ubuntu0.10.10),但要安装9.0.1-1〜lucid 当我试图删除libpq5 (重新安装正确?),它威胁要删除postgresql-9.0: 以下软件包将被删除:libpq5 pgadmin3 php5-pgsql postgresql-9.0 postgresql-client-9.0 有谁知道如何解决这个问题? 谢谢。

哪个VPSconfiguration会更好?

我目前在HostingRails.com有一个VPS,并且对这个服务感到非常失望,所以我一直在考虑切换到linode。 我有三个在Passenger上运行的rails应用程序(我的实时应用程序,实时应用程序的QA版本和一个redmine ),一个phpbb安装,以及一个当前在我的VPS上运行的mysql数据库,总共占用大约400MB的RAM此时此刻。 我试图弄清楚是否最好能得到一个720MB的节点,只需要把所有的东西都粘在那里,或者得到两个360MB的节点,在一个站点和QA站点上有live site,在另一个站点上redmine(在这种情况下,你会build议两个单独的数据库,每个节点一个)? 有人向我提出,分拆我的申请是个好主意,但我不知道这是否属实; 我认为,如果我有一个节点,如果实时应用程序需要更多的内存,它可以从我的QA安装和redmine可能不会完全使用的360MB。 此外,我目前有我的SVN(一个活跃的项目,一对夫妇不活跃的,两个用户)在Dreamhost托pipe,因为我提前付了一个计划,离开我的SVN,而不是将其移动到我的VPS。 将SVN移动到linode会影响你的答案?

是否可以使用自定义脚本进行PAMvalidation?

我想让用户使用我的rails应用程序的凭据login到sftp帐户。 如果我理解正确,我应该以某种方式使用PAM。 但是我没有find有关如何做到这一点的任何信息?

如何configurationElastic Beanstalk以使用Rails和Postgres?

Elastic Beanstalk内置了对RDS的支持。 但是,我想使用Elastic Beanstalk的Postgresql。 这将是最好的做法呢?

Nginx,安装https

我试图在我的ubuntu服务器上用NGINX ver 1.4.7和Phusion Passenger 4.0.41来设置https。 我使用这两个命令创build了.key和.csr sudo openssl genrsa -des3 -out server.key 2048 sudo openssl req -new -key server.key -out server.csr 并发送.csr到sslshopper.com家伙 有3个文件: Root CA Certificate – AddTrustExternalCARoot.crt Intermediate CA Certificate – USERTrustSecureServerCA.crt Your COMODO SSL Certificate – subdomain_domain_com.crt 这就是我的nginx.conf现在的样子 http { passenger_root /usr/local/rvm/gems/ruby-2.1.1/gems/passenger-4.0.41; passenger_ruby /usr/local/rvm/gems/ruby-2.1.1/wrappers/ruby; server_names_hash_bucket_size 64; include mime.types; default_type application/octet-stream; #access_log logs/access.log main; […]

在Apache + Passenger上运行Ruby on Rails应用程序到很多内存

我正在使用passenger / Apache 2.2在我的服务器上运行redmine(RoR应用程序)。 乘客和ruby正在使用太多的记忆。 有没有更多的内存有效的方式来运行redmine / ruby​​? 我只需要支持六个redmine用户。 我想继续使用Apache,但我打开所有不是“使用nginx / lighttpd”的build议。 (以下数据来自512MB VPS,因此Ruby仅为redmine使用128MB以上) user ……. %mem ……. process ———————————– www-data … 13.6 0:00.65 ruby1.8 www-data … 12.2 0:04.86 ruby1.8 www-data … 9.4 0:04.15 apache2 www-data … 9.0 0:13.94 apache2 www-data … 3.2 0:00.27 apache2 root … 2.5 0:00.23 apache2 root … 1.9 0:01.19 ruby1.8 […]

如何在Windows Server 2008上为Ruby on Rails应用程序提供服务?

我花了几个小时试图让Ruby on Rails在Windows服务器上运行,没有运气。 起初我尝试通过IIS7的FastCGI支持configuration一个testing应用程序,但是这个文档不是很好。 我一直在关注这个博客条目 , 这一个 , 这一个 , 这一个,但一切似乎缺less重大步骤,或已过时。 而且每篇文章都从rubyonrails.org链接回到这个不存在的Howto 。 我得到的感觉是,即使我能够做到这一点,IIS的FastCGI也不足以在生产环境中使用。 所以看起来我最好的select是在IIS中设置一个反向代理,使用ARR和UrlRewrite指向Apache和Mongrel / Passenger。 有没有其他人阻止在Windows堆栈上部署Rails应用程序? 我在正确的轨道上? 你能给我一个更好的想法如何configuration这个? 我相信Plesk已经使用不同的端口安装了在这个服务器上运行的Apache / Tomcat的一个实例,所以添加另一个虚拟主机应该不难; 最难的部分似乎是通过IIS设置反向代理。 附录 自发布以来,我开始构build一个运行Linux的虚拟服务器,并使用Apache, Passenger和Ruby Enterprise Edition来为我们的Rails产品提供服务。 Linux是如此简单,便宜和可靠的select,试图将Rails的方块钉入Windows / IIS的圆孔是愚蠢的任务。 唯一可能的例外是如果你的Windows环境。 支持Java,你可以使用JRuby。 根据所有帐户,它是更好的Ruby实现之一。 否则,放弃并保存你的理智。