2011-12-24 38 views
10

Nhìn vào nhật ký, ứng dụng tuyết tùng của tôi hiện đang chạy webrick. Rõ ràng, đây không phải là lựa chọn tốt nhất cho ứng dụng sản xuất.Heroku, Thin và mọi thứ ở giữa

Như đã lưu ý trên web, tôi nên sử dụng máy chủ web mỏng.

Nhưng tôi vẫn muốn sử dụng tính đơn giản của webrick trên máy phát triển của tôi (cửa sổ).

Như đã đề cập trong các ý kiến ​​trên Heroku cedar stack, thin and eventmachine phiên bản có thể được cài đặt trên cửa sổ cho eventmachine (Tôi cũng cần một số giải thích về đá quý đó) là 1.0.0.beta4 và Heroku không làm như vậy ..

  1. Làm thế nào để cài đặt mỏng (và eventmachine tôi đoán) chỉ trên heroku và giữ webrick cho tất cả các nhu cầu localhost của tôi?

  2. Eventmachine là gì và tại sao tôi cần nó?

  3. Có cách nào để nói với Heroku một cách rõ ràng để bỏ qua những gì tôi muốn và sử dụng mỏng không?

+1

Để sử dụng mỏng chỉ trong sản xuất, bạn sẽ cần tuyên bố này trong Gemfile 'nhóm: sản xuất làm; đá quý 'mỏng'; end' và đặt nó vào Procfile: 'web: bundle exec rails server thin -p $ PORT' như được mô tả trong http://devcenter.heroku.com/articles/rails3 – taro

+0

Heroku [khuyến nghị Unicorn] (https: // devcenter. heroku.com/articles/getting-started-with-rails4#webserver) cho các ứng dụng sản xuất bây giờ – Yarin

Trả lời

31

Trong bạn Gemfile, tạo hoặc thay đổi nhóm production bao gồm thin:

group :production do 
    gem 'thin' 
end 

Sau đó, trong bạn Procfile (một file có tên Procfile đặt trong thư mục gốc của ứng dụng của bạn), nói Heroku bạn muốn sử dụng thin, như vậy:

web: bundle exec thin start -p $PORT 

Điều đó sẽ cho phép bạn tiếp tục sử dụng Webrick trong môi trường phát triển địa phương của bạn trong khi chạy thin trong sản xuất trên Heroku.

+0

Tôi đang làm điều tương tự, với Rails '3.2.21', nhưng nó nói:' bundler: không thể tải lệnh: mỏng (/app/vendor/bundle/ruby/2.2.0/bin/thin) ' –

0

Để bỏ cài đặt của thin đá quý trên máy tính địa phương của bạn, hãy gọi bundler như thế này:

bundle install --without production 
Các vấn đề liên quan