Heroku, Thin и все, что между ними

Глядя на журналы, мое приложение Cedar в настоящее время запускает webrick. Очевидно, это не лучший выбор для производственного приложения.

Как отмечается в Интернете, я должен использовать тонкий веб-сервер.

Но я все равно хотел бы использовать простоту webrick на своей машине разработки (Windows).

Как отмечено в комментариях к Heroku cedar stack, thin и eventmachine версии, которая может быть установлен на windows для eventmachine (мне также нужно некоторое объяснение по этому драгоценному камню) - 1.0.0.beta4, и heroku это не нравится ..

  1. Как мне установить тонкий (и eventmachine, я думаю) только на heroku и сохранить webrick для всех моих потребностей localhost?

  2. Что такое eventmachine и зачем он мне нужен?

  3. Есть ли способ явно указать heroku игнорировать то, что я хочу, и использовать thin?


person Nick Ginanto    schedule 24.12.2011    source источник
comment
Чтобы использовать thin только в производственной среде, вам нужно будет объявить это в Gemfile group :production do; gem 'thin'; end и поместить в Procfile: web: bundle exec rails server thin -p $PORT, как описано в devcenter.heroku.com/articles/rails3   -  person taro    schedule 25.12.2011
comment
Heroku теперь рекомендует Unicorn для рабочих приложений.   -  person Yarin    schedule 28.01.2014


Ответы (2)


В вашем Gemfile создайте или измените группу production, чтобы включить thin:

group :production do
  gem 'thin'  
end

Затем в вашем Procfile (файле с именем Procfile, помещенном в корень вашего приложения), скажите Heroku, что вы хотите использовать thin, например:

web: bundle exec thin start -p $PORT

Это позволит вам продолжать использовать Webrick в вашей локальной среде разработки, одновременно выполняя thin в продакшене на Heroku.

person leonardoborges    schedule 26.12.2011
comment
Я делаю то же самое с Rails 3.2.21, но там написано: bundler: failed to load command: thin (/app/vendor/bundle/ruby/2.2.0/bin/thin) - person Arslan Ali; 13.08.2017

Чтобы пропустить установку thin gem на локальном компьютере, вызовите сборщик пакетов следующим образом:

bundle install --without production
person Viktor    schedule 03.07.2013