Tag: 独角兽

从域发送请求到特定Rails引擎

我在Rackspace VPS上运行了一个rails应用程序。 堆栈是rails3 + unicorn + nginx + mysql。 有一个主域使用proxy_pass将流量直接发送到unicorn套接字。 我开发了一种安装在/digital下的新引擎。 现在,人们可以通过http://primarydomain.com/digital与该引擎进行交互。 我想托管一个新的域名,直接将请求转发到/digital ; 不是根引擎。 因此,例如,以下请求将产生等效结果: http://primarydomain.com/digital/splash http://alternatedomain.com/splash 在完美的世界中,引擎将是一个单独的应用程序。 我想表现得好像单独的域是一个单独的应用程序,虽然它真的是一个挂载的引擎。 这是routes.rb样子: Company::Application.routes.draw do root :to => ‘spree/home#splash’ ActiveAdmin.routes(self) mount Core::Engine, :at => ‘/’ mount Another::Engine, :at => ‘/digital’ end 我需要什么rails + nginx配置来实现这个function?

rbenv问题:您的Ruby版本是1.9.3,但您的Gemfile指定为2.2.0

我在unicorn启动脚本中设置Ruby版本时遇到问题。 当我在调试模式下运行启动脚本时,我有以下输出。 vagrant@vagrant-ubuntu-trusty-64:~$ sudo sh -x /etc/init.d/unicorn start + set -e + USAGE=Usage: /etc/init.d/unicorn + USER=vagrant + APP_NAME=my_app + APP_ROOT=/vagrant + RAILS_ENV=production + export RBENV_ROOT=/home/vagrant/.rbenv + export PATH=/home/vagrant/.rbenv/bin:/home/vagrant/.rbenv/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + SET_RUBY=cd /vagrant && rbenv rehash && rbenv local 2.2.0 + CMD=cd /vagrant && rbenv rehash && rbenv local 2.2.0;bundle exec unicorn -c config/unicorn.rb -E production -D […]

独角兽错误:“错误 – :收获# worker = 2”

我们每天都会收到这样的错误(有时不止一次): Apr 13 12:16:31 app1 unicorn.log: E, [2014-04-13T12:16:31.302011 #17269] ERROR — : reaped # worker=2 我们使用Unicorn 4.8.2和Ruby on Rails应用程序。 它似乎不会在任何明显的时间发生,例如在部署期间或之后。 我们不确定如何调试这个 – 对问题可能是什么或如何调试它的任何建议?

资产管道在rails生产环境中不起作用

我在使用Rails部署到VPS时遇到问题。 我的应用程序在开发环境中运行良好,但是当我使用Capistrano进行生产时,我遇到了问题。 我使用的是独角兽,rails 3.2.13和ruby 1.9.3 我遇到的问题是当我访问我的生产网站时,我收到了“模板丢失”错误: Template is missing Missing template site/index with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :haml]}. Searched in: * “/home/deployer/apps/my-app/releases/20130417030832/app/views” * “/home/deployer/apps/my-app/shared/bundle/ruby/1.9.1/gems/devise-2.2.3/app/views” * “/home/deployer/apps/my-app/shared/bundle/ruby/1.9.1/bundler/gems/piggybak_paypal-b892954868c7/app/views” * “/home/deployer/apps/my-app/shared/bundle/ruby/1.9.1/gems/piggybak_variants-0.0.15/app/views” * “/home/deployer/apps/my-app/shared/bundle/ruby/1.9.1/gems/piggybak-0.6.28/app/views” * “/home/deployer/apps/my-app/shared/bundle/ruby/1.9.1/bundler/gems/rails_admin-b8465f738261/app/views” * “/home/deployer/apps/my-app/shared/bundle/ruby/1.9.1/gems/kaminari-0.14.1/app/views” 所以,我认为这可能是资产预编译问题。 当我运行rake资产:在我的本地开发环境中进行预编译时,我遇到了问题: /Users/ac/.rvm/rubies/ruby-1.9.3-p392/bin/ruby /Users/ac/.rvm/gems/ruby-1.9.3-p392/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets [RailsAdmin] RailsAdmin initialization disabled by default. Pass SKIP_RAILS_ADMIN_INITIALIZER=false if you need it. rake aborted! […]

nginx剥离最后修改和if-modified-since标头,但我的rails应用程序需要它们

我的Rails 3.2应用程序使用 – 通过#stale? – If-Modified-Since请求中的HTTP头和响应中的Last-Modified头决定是否应该动态生成一些数据。 这在开发中非常有效(无论是使用webrick还是unicorn_rails),因为curl -D headers.txt显示如果提供了正确的If-Modified-Since值,则发送304响应,而Last-Modified标头另外发送请求数据。 不幸的是,一旦部署在nginx之后, If-Modified-Since (提供正确的头部值)都不会传递给unicorn – 因此Rails应用程序 – 也不会Last-Modified传播到客户端:无条件地生成请求并且响应永远不会包含合适的标题。

Unicorn和Rails占用了2倍的MySQL连接

我为每个服务器运行10个Unicorn工作程序,他们随着时间的推移吃掉所有MySQL连接,结果是“连接太多”错误。 它从10个连接开始,但逐渐增加到20个。 当我在生产中运行以下脚本时(使用SHOW PROCESSLIST ),我可以看到每个IP(= app服务器)每个都有20个连接,它应该是10 – 令Unicorn工作者的数量增加了两倍。 result = ActiveRecord::Base.connection.execute ‘show processlist’ result.group_by{|i| i[2].split(‘:’).first }.map{|k,v| [k, v.size] } => [[“192.168.1.2”, 20], [“192.168.1.3”, 20], [“192.168.1.4”, 20], … ] 这是database.yml production: adapter: mysql2 … pool: 1 这是netstat: # netstat -an | grep :3306 tcp 0 0 192.168.1.2:58535 192.168.1.123:3306 ESTABLISHED tcp 0 0 192.168.1.2:45021 192.168.1.123:3306 ESTABLISHED tcp […]

Rails 4 Unicorn服务应用程序没有ActiveRecord

我正在构建一个不使用任何数据库的rails 4应用程序。 我已经在我的开发机器上成功禁用了ActiveRecord,方法是在线删除database.yml并替换几个指南 require ‘rails/all’ 同 require “action_controller/railtie” require “action_mailer/railtie” require “rails/test_unit/railtie” require “sprockets/railtie” 它在本地工作,但是当我尝试在运行独角兽的服务器上部署它时,我在错误日志上得到了这个 ERROR — : ActiveRecord::ConnectionNotEstablished (ActiveRecord::ConnectionNotEstablished) /home/rtb/shared/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:546:in `retrieve_connection’ 当我启用了database.yml和activerecord时,应用程序在生产的unicorn服务器上工作正常。 有什么我想念的吗?

使用Unicorn生产的回形针:未初始化的常量Paperclip(NameError)

我将Paperclip添加到我的应用程序中,然后尝试使用capistrano部署到我的VPS。 部署成功,但是当我尝试在VPS上访问我的应用程序时,我得到了Rails错误页面。 production.log没有信息,但是unicorn.log有以下错误: E, [2013-06-25T19:44:07.372060 #21995] ERROR — : uninitialized constant Paperclip (NameError) /home/deployer/apps/arcsite/releases/20130625182331/config/initializers/paperclip.rb:1:in `’ 初始化文件是paperclip.rb并具有以下内容: Paperclip.interpolates :zone do |attachment, style| attachment.instance.zone_id end 这是一个允许我使用我想要的文件夹结构的插值器。 如果我删除paperclip.rb初始化文件,我得到一个错误,在我的类中未定义has_attachment ,使得看起来像paperclip gem没有正确加载。 我试图卸载/重新安装gem,但是当我运行gem uninstall paperclip ,它告诉我没有安装paperclip gem。 当我运行bundle show paperclip它确实显示了一个目录(我正在使用RVM),所以我用gem install paperclip手动安装了paperclip gem。 我仍然得到同样的错误。 此应用程序在thin服务器上的开发工作正常。 我的VPS设置: nginx的 独角兽 RVM Capistrano的 rails版本:3.2.13 paperclip版本:3.4.2 我跟着Ryan的截屏设置了nginx / unicorn

Unicorn和omniauth-facebook – 未初始化的恒定OmniAuth

所以我想让omniauth-facebook在我的生产环境中工作。 它使用POW在我的机器上本地工作正常。 我的prv env是带有nginx / unicorn的ubuntu,代码是Rails 3.2.13,独角兽的错误是: E, [2013-05-20T15:51:13.900829 #8737] ERROR — : uninitialized constant OmniAuth (NameError) /home/web/apps/****/releases/20130520041958/config/initializers/omniauth.rb:1:in `’ 所以从我能找到的,我尝试在configure块上面添加require’omniauth / facebook’到我的production.rb文件,现在我得到: /home/web/apps/****/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `require’: cannot load such file — omniauth/facebook (LoadError) gemfile看起来像这样: source ‘https://rubygems.org’ gem ‘rails’, ‘3.2.13’ gem ‘pg’ gem ‘bcrypt-ruby’, ‘3.0.1’ gem ‘jquery-rails’, ‘2.2.1’ gem ‘omniauth-facebook’ gem ‘simple_form’ 初始化文件看起来像这样: OmniAuth.config.logger = Rails.logger Rails.application.config.middleware.use OmniAuth::Builder […]

Unicorns吃掉了不考虑池大小的MySQL连接–Rails

我为我的Rails应用程序运行了4个Unicorn进程,它们占用了所有可用的MySQL连接,导致它因“连接数太多”错误而崩溃。 今天我不得不重启我的数据库实例4次。 =( 流程 $ ps ax | grep [u] ni 21618? Sl 0:15独角兽大师-D -c /home/deployer/apps/XXX/shared/config/unicorn.rb -E production 21632? Sl 0:20独角兽工[0] -D -c /home/deployer/apps/XXX/shared/config/unicorn.rb -E production 21636? Sl 0:14独角兽工[1] -D -c /home/deployer/apps/XXX/shared/config/unicorn.rb -E production 21640? Sl 0:20独角兽工[2] -D -c /home/deployer/apps/XXX/shared/config/unicorn.rb -E production 21645? Sl 0:12独角兽工[3] -D -c /home/deployer/apps/XXX/shared/config/unicorn.rb -E production 我的database.yml为ActiveRecord池设置了22个连接…… … 生产: 适配器:mysql2 编码:utf8 […]