2010-06-06 35 views
7

Các lý tưởngNhiều phiên bản Ruby trên một máy chủ web?

Sử dụng RVM, nó sẽ là tuyệt vời để có thể có nhiều Hồng ngọc trên một máy chủ web, và thông qua một số loại cấu hình máy chủ, có thể chỉ định các phiên bản Ruby để khác nhau Rails/Sinatra/etc ứng dụng trên cơ sở từng dự án.

Tôi biết, từ tài liệu của rvm, rằng Hành khách chỉ làm việc với một Ruby tại một thời điểm. :(

sự thỏa hiệp

Không đó, nó sẽ được tốt đẹp để ít nhất có thể pha chế một cách để có thể gán các dự án Ruby 1,8 hoặc một thông dịch viên của Ruby 1.9. Tôi đã đọc sử dụng Nginx như một proxy ngược cho phép chạy Apache và Nginx trên cùng một hộp. Sau đó, có thể có Apache + Passenger bằng cách sử dụng một Ruby, và Nginx + Passenger bằng cách sử dụng một cái khác không? Có lẽ sử dụng một cái gì đó khác với Hành khách với Nginx?

Tôi có làm rung cây sai không?

Tôi có thiếu giải pháp tốt cho vấn đề này không? Tôi đang bước vào một tình huống cấu hình cơn ác mộng? Là những gì tôi muốn thậm chí khả thi, hoặc là nó cần thiết để chạy một hộp để chạy một phiên bản Ruby riêng biệt?

+0

Tôi không chắc chắn điều này khả thi như thế nào, nhưng sử dụng tài khoản người dùng riêng biệt cho mỗi quy trình bạn muốn chạy theo từng loại ruby ​​khác nhau (hoặc có thể chỉ 1 người dùng trên mỗi ruby?) Sẽ là một khởi đầu tốt. – x1a4

+0

Ảo hóa có phải là một tùy chọn không? Nếu có một lý do bạn không thể chạy nhiều phiên bản Ruby, bạn có thể chạy một máy chủ ảo với phiên bản khác, vì vậy mỗi cài đặt hệ điều hành chỉ có một. – Ken

Trả lời

0

Còn việc giữ tất cả các dự án của bạn (hoặc ít nhất là trên một máy chủ) trên cùng một phiên bản ruby ​​thì sao? Có thể sử dụng phiên bản cũ hoặc nâng cấp các dự án cũ?

Tôi nghĩ, theo cách này, bạn có vấn đề ít nhất.

+0

Bởi vì ở trên Ruby 1.8 không phải là rất mong muốn. Và bởi vì không phải tất cả mọi thứ chạy trên hộp là của riêng chúng tôi, và nó không chính xác khả thi cho chúng tôi dành tất cả thời gian của chúng tôi làm cho Redmine 1.9 tương thích (ví dụ). Ngoài ra, ít nhất là trong các thiết lập lý tưởng, nó sẽ thực sự tốt đẹp để chạy các dự án trên Ruby họ ban đầu được viết cho. Ý tôi là, với rvm, máy chủ có những viên hồng ngọc đang ngồi ở đó, thật tuyệt khi có thể để cho từng dự án sử dụng chúng! – Legion

1

Bạn có thể sử dụng Thin hoặc Unicorn với Nginx. Bạn có thể viết một kịch bản thần hoặc một số kịch bản khởi động khác để thiết lập phiên bản ruby ​​cho mỗi dự án (hoặc đơn giản là khởi động Thin/Unicorn bằng tay).

+0

Nếu bạn có thêm câu hỏi về RVM, có những người sẵn lòng trợ giúp 24/7 trong kênh #rvm trên freenode: http://webchat.freenode.net/?channels=rvm. –

0

Có thể thỏa hiệp. Bạn có thể làm điều này theo nhiều cách khác nhau nhưng có lẽ cách đơn giản nhất là một proxy ngược lại kết hợp với nhiều trình cài đặt máy chủ + ruby ​​+ websro được chroot như bạn thấy thuận tiện.

1

Sử dụng nhiều máy ảo nhỏ?

+0

Nếu đó là tôi, tôi sẽ thiết lập một VM/slice mới cho 1.9 và di chuyển ứng dụng đến đó. – wesgarrison

0

Nếu bạn đang sử dụng Mac OS X, bạn có thể muốn xem POW!, có thể xử lý nhiều hồng ngọc. Có một thay thế linux gọi là hoof, không được phát triển nhưng đang tiến gần hơn.

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