Articles of ruby on rails

如何降低低内存服务器?

我遇到了一个Rails应用程序的问题,它运行在365MB VPS上,这似乎不是很多。 当同时有超过3-5个用户时,内存不足,开始使用交换,这就是f ******慢。 当我看着top ,我可以看到有很多产生的MySQL实例(远远超过Rails进程)。 这是正常的吗? 你如何推荐缩减低内存环境的应用程序? 我使用的是Ubuntu 9.04,Apache2.2和mod passenger,MySQL 5.075和Ruby 1.8.7 编辑:在你的build议之后,我把VPS升级到了540MB,现在看来已经足够了。 然而,我只是一个穷学生 ,所以我不能在我为自己做的一些项目中抽出太多的钱,直到它开始至less还钱。

如何在Ubuntu上正确保护Unicorn / RoR服务器? 或者,硬化RoR应用程序堆栈?

我有几个在Ubuntu 12.04上运行的Unicorn服务器,我正在寻求保护它们免受远程shell的攻击。 我主要关心的是,如果部署ModSecurity是有意义的? 另一件事是,我已经看到Unicorn通常从端口8080运行,并将其转发到作为反向代理的Apache / NginX服务器端口80。 我在想,我可以雇用以下人员: Apache上的ModSecurity 作为工作者的Apache(带有mod_qos的线程),以防止来自任何主机的过多的请求 从指定的用户运行独angular兽服务器,并通过AppArmor或SELinux隔离它,如果它是Redhat / Centos的 我想知道,如果有另一个强化框架/修补程序的RoR像PHP Suhosin。

如何用Capistrano在服务器上执行命令?

我有一个非常简单的任务叫做update_feeds: desc "Update feeds" task :update_feeds do run "cd #{release_path}" run "script/console production" run "FeedEntry.update_all" end 每当我尝试运行这个任务,我收到以下消息: [out :: mysite.com] sh: script/console: No such file or directory 我想这是因为我不在正确的目录,但尝试 run "cd ~/user/mysite.com/current" 代替 run "cd #{release_path}" 也失败了。 手动运行完全相同的命令(通过ssh)完美地工作。 为什么不能正确地cd (改变目录)进入站点目录运行命令? 谢谢!

无法使用eb cli部署rails应用程序

我最近更新了我的环境configuration:运行Ruby 2.2(Passenger Standalone)的64位Amazon Linux 2015.03 v1.4.6。 在使用eb deploy部署我的应用程序之后,我现在在var / log / eb-commandprocessor.log中得到一个错误,指出: [2016-01-07T01:45:48.109Z] INFO [2602] : Command processor returning results: {"status":"FAILURE","api_version":"1.0","results":[{"status":"FAILURE","msg":"(TRUNCATED)…e ']'\n+ bundle install\nDon't run Bundler as root. Bundler can ask for sudo if it is needed, and\ninstalling your bundle as root will break this application for all non-root\nusers on this machine.\n Your Ruby version […]

在Amazon EC2上托pipeRails的build议?

有很多解决scheme可以轻松在Amazon EC2上托pipeRails,如下所示 泳池派对 橡胶 亚马逊云形成 Opscode厨师 滚动你自己的 (我敢肯定其他人不知道),我很乐意提供一些指导。 这将是一个小的设置与一个MySQL数据库和两个应用服务器,然后希望从那里增长。 我想要做的最后一件事是重新发明轮子并滚动我自己的设置,所以像Poolparty和Rubber这样的解决scheme是吸引人的,但我从来没有使用过它们。 我知道也有Heroku和EngineYard,过去我都用过,但是他们只是在后台使用Amazon EC2,所以我宁愿直接使用Amazon EC2的解决scheme。 任何build议在哪个路线将是伟大的!

为Unicorn编写一个新的configuration文件

我有一个很好的狩猎,无法find一个独angular兽暴发剧本的好例子。 从我读过的内容来看,我认为如果我试图build立一个基本的新贵的configuration文件,独angular兽pipe理自己的工人等,那么新贵和独angular兽可能会踩到彼此的脚趾。 任何提示或捷径之前,我挖自己?

如何在RAILS中为本地主机添加SSL

我想testing我的应用程序需要使用和不使用SSL。 如果可以为本地应用程序( http:// localhost:3000 )设置SSL,请让我知道一些build议,我的操作系统是Ubuntu 10.4。

Rails,Capistrano,Nginx,Unicorn – 应用程序已经被初始化(RuntimeError)

任何人都可以说明这个错误究竟是指什么? 我在部署新版本的网站时遇到问题。 I, INFO — : reloading config_file=[snip]/current/config/unicorn.rb I, INFO — : Refreshing Gem list E, ERROR — : error reloading config_file=[snip]/current/config/unicorn.rb: Application has been already initialized. (RuntimeError) E, ERROR — : [snip]/shared/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/application.rb:135:in `initialize!' E, ERROR — : [snip]/shared/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/railtie/configurable.rb:30:in `method_missing' E, ERROR — : [snip]/releases/20120907085937/config/environment.rb:5:in `<top (required)>' E, ERROR — : [snip]/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:251:in `require' E, ERROR […]

应用程序特定的环境在Nginx / Passenger中的同一台服务器上

我有两个使用Nginx / Passenger部署的Rails应用程序(比如app1和app2)。 nginx.conf中的服务器定义如下所示: server { rails_env demo; client_max_body_size 50M; listen 80; server_name localhost; root /data/apps; passenger_enabled on; passenger_base_uri /app1; passenger_base_uri /app2; } 你可以看到两者都被configuration为使用demo作为RAILS_ENV 。 我应该如何更改我的configuration以在不同的环境中运行这两个应用程序。 假设app2假设运行RAILS_ENV=qa和app1 RAILS_ENV=demo

使用AWS Elastic Beanstalk运行Puma&Nginx的Rails应用程序502

我已经能够成功地让我的应用程序运行在与铁路客运的Beanstalk,但是我没有与彪马运气。 每当我部署到Puma堆栈时,我得到502错误,我的日志文件表明它找不到袜子文件: 2014/05/15 21:00:15 [crit] 1684#0: *4 connect() to unix:///var/run/puma/my_app.sock failed (2: No such file or directory) while connecting to upstream, client: 10.184.156.117, server: _, request: "GET / HTTP/1.1", upstream: "http://unix:///var/run/puma/my_app.sock:/", host: "app-env-89spnxpcai.elasticbeanstalk.com" 我的应用程序是使用Ruby ruby​​ 2.0.0p451&Rails 4.1.1构build的 我的.ebextensionsconfiguration看起来像这样 packages: yum: git: [] commands: add_bundle_exec: test: test ! -f /opt/elasticbeanstalk/support/.post-provisioning-complete cwd: /opt/elasticbeanstalk/hooks/appdeploy/pre command: perl -pi -e […]