2009-05-11 33 views
13

Tôi đọc từ một số cuốn sách mà Phusion Passenger là câu trả lời cho việc triển khai Ruby on Rails dễ dàng. Nhưng người bạn của tôi nói rằng trước tiên đã có Apache + bó Mongrels, và sau đó lighttpd, và sau đó nginx, và bây giờ Hành khách, và nó có vẻ vô tận ...là mod_rails hoặc Phusion Passenger cuối cùng là câu trả lời cho Ruby on Rails Deployment?

ông cũng cho biết ông sử dụng dreamhost sử dụng Hành khách, và đôi khi ông thấy yêu cầu của anh ấy không được xử lý.

Vì vậy, tôi tự hỏi liệu Hành khách có phải là câu trả lời cuối cùng cho việc triển khai RoR không? Bạn có sử dụng nó và sử dụng lệnh "ab" để kiểm tra xem trang web có hoạt động tốt không?

+0

Trên Dreamhost, bạn của bạn có thể đang chạy vào trần bộ nhớ cho mỗi người dùng của họ, chứ không phải vấn đề Hành khách. Xem: http://stackoverflow.com/questions/824783/rails-app-randomly-crashes-with-error-premature-end-of-script-headers –

Trả lời

20

câu trả lời ngắn gọn: có.

câu trả lời dài: yeeeeeeeeeeeeeeesssssssssssssssss.

Trong tất cả các mức độ nghiêm trọng, Phusion Passenger và Ruby Enterprise Edition đã đưa ra khá nhiều nỗi đau khi di chuyển một ứng dụng Rails vào sản xuất. Các phương pháp tiếp cận trước, bao gồm chạy một bộ Mongrels, yêu cầu nhiều thiết lập xung quanh các quá trình nghe, bắt đầu và tái chế mà Passenger xử lý một cách minh bạch hoặc thông qua các tùy chọn cấu hình Apache (hoặc nginx) đơn giản. Và bộ thu gom rác bổ sung của REE có nghĩa là tắt một người nghe mới sử dụng ít bộ nhớ hơn, và nhanh hơn để khởi động (trong chế độ sinh sản thông minh "của Hành khách).

Chỉnh sửa: @srboisvert tạo một điểm rất tốt; Hành khách không phải là câu trả lời cuối cùng cho việc triển khai RoR, nhưng bây giờ nó là yêu thích của tôi cho đến nay. Một ngày, sau khi rất nhiều vấn đề kỹ thuật cứng được giải quyết, chính Ruby có lẽ sẽ chuyển từ lưu trữ RoR bằng cách sử dụng một mô hình đa tiến trình thành một mô hình đơn, điều này sẽ làm cho việc quản lý dễ dàng hơn với Hành khách.

+1

+1 cho câu trả lời dài: yeeeeeeeeeeeeeeesssssssssssssssss. Tôi đã bật cười và vẫn cười. –

3

Vâng, đó là giải pháp dễ nhất, nhanh nhất và hiệu quả nhất. Sau rất nhiều vấn đề với đá quý như soap4r vv đã được giải quyết trong các bản phát hành gần đây, Hành khách là câu trả lời cho các câu hỏi triển khai ngay bây giờ.

Chúng tôi đang chạy Apache/mod_rails trong môi trường cân bằng với HAProxy ở phía trước 2 máy chủ. Nó đáng tin cậy hơn nhiều so với thiết lập trước của chúng tôi bằng cách sử dụng Mongrel/Aapache.

Nó rất dễ dàng để có quyền kiểm soát

  • lượng của các quá trình tải hành khách chạy trong Apache
  • lượng của các quá trình tải hành khách chạy mỗi ứng dụng
  • và tất cả những gì mà không có sự đau đớn của tinh chỉnh một số các tệp cấu hình như mod_proxy, Apache.
  • thiết lập một máy chủ ảo và thêm 3 dòng để cấu hình Apache của bạn về cơ bản là đủ để làm cho nó chạy

Matt

3

cuối cùng trả lời? Không có gì là câu trả lời cuối cùng.

Tôi muốn nói Hành khách là câu trả lời hiện tại.

+2

không có gì là câu trả lời cuối cùng trừ khi bạn đang chơi trò chơi "ai muốn trở thành triệu phú". –

4

Đó là giải pháp tốt nhất từ ​​trước tới nay. Tôi bắt đầu triển khai với FCGI và đó là một nỗi đau. Sau đó đến mongrel và nó đã được tốt hơn. Sau đó, đến mod_rails và nó đã được WAY tốt hơn.

Ngoài ra, rất nhiều ứng dụng thú vị đang chuyển sang mod_rails bao gồm một số bằng 37 ký hiệu, vì vậy bạn biết điều đó tốt.

tôi sẽ chỉ kết thúc với một trích dẫn từ DHH:

Các giải pháp một mảnh với Phusion hành khách

Khi bạn đã hoàn thành quá trình cài đặt vô cùng đơn giản, bạn sẽ có được một Apache hoạt động như cả máy chủ web, tải cân bằng , máy chủ ứng dụng và trình xem quy trình . Bạn chỉ cần bỏ qua đơn đăng ký của mình và chạm vào tmp/restart.txt khi bạn muốn trả lại và bam, bạn đang hoạt động và đang chạy.

Nhưng bằng cách nào đó, thông điệp của Hành khách đã bị chậm một chút. Đã có hàng tấn các trang web lớn chạy khỏi nó. Bao gồm Shopify, MTV, Geni, Yammer và chúng tôi sẽ di chuyển qua Danh sách Ta-da đầu tiên trong thời gian ngắn, sau đó hy vọng phần còn lại của 37signals sẽ nhanh chóng sau đó.

Vì vậy, trong khi vẫn có những lý do để chạy của riêng bạn thiết lập tùy chỉnh đa tầng mảnh cấu hình bằng tay, chỉ như có những người ngần ngại từ mod_php cho cụ thể của họ, tôi nghĩ rằng chúng tôi đã cuối cùng giải quyết trên câu trả lời mặc định là . Một cái gì đó mà không yêu cầu bạn thực sự nghĩ về việc triển khai đầu tiên của ứng dụng Rails của bạn. Thứ gì đó hoạt động ra khỏi hộp . Ngay cả khi hộp đó là một máy chủ chia sẻ !

Kết luận, Rails không còn khó khăn để triển khai. Phusion Passenger đã thực hiện thật dễ dàng.

(via)

1

Tôi đoán rằng bây giờ mọi người sẽ dính vào mod_rails trong nhiều năm. Mô-đun thực sự tốt. Cấu hình chết đơn giản. Sẽ rất khó để thay thế nó bằng một số giải pháp tốt hơn. Tương tự như mod_php. Thành phần khóa duy nhất bị thiếu: Cổng Windows.

2

Có. Tôi đã chạy Nginx/Passenger trước Apache cho bất cứ điều gì vẫn còn cần PHP kể từ khi họ phát hành 2.2.0 một vài tuần trở lại. Đặc biệt với Ruby Enterprise Edition, nó tiếp cận những gì tôi gọi là "hoàn hảo".

1

Trong một số trường hợp (doanh nghiệp, v.v ...) JVM cũng có thể là một lựa chọn tốt.

Các vấn đề liên quan