繁体   English   中英

如何为具有不同Ruby版本的两个Rails应用程序创建服务器设置?

[英]How do I create a server setup for two Rails apps with different Ruby versions?

我有一个很大的EC2实例。 我有一个使用Rails 4.0和Ruby 2.0的应用程序,使用Unicorn运行。

我想在实例上使用Rails 4.0.1和Ruby 2.1部署另一个非常小的应用程序。

我可以在两个应用程序中使用Unicorn吗? 如果没有,我可以使用Nginx + Unicorn吗? 对此有什么合适的方法?

我想使用Nginx +乘客,但不支持不同的Ruby版本。

这是一个示例Nginx配置,它不起作用,因为两个应用程序都需要不同的Ruby版本:

http {
  passenger_root /home/prasad/.rvm/gems/ruby-1.9.3-p286/gems/passenger-3.0.18;
  passenger_ruby /home/prasad/.rvm/wrappers/ruby-1.9.3-p286/ruby;
  ...
  server {
    listen       80;
    server_name  dev.app1; #uses ruby 1.9.3
    passenger_enabled on;
    root   /home/prasad/projects/app1/public;
    rails_env development;
  }

  server {
    listen       80;
    server_name  dev.app2; #uses ruby 2.0
    passenger_enabled on;
    root   /home/prasad/projects/app2/public;
    rails_env development;
  }
  ...

我正在寻找一个解决方案,我可以运行不同堆栈的多个应用程序。

解决方案是升级到V4或更高版本的Passenger,以便您可以为每个应用程序配置Ruby版本。

实质上,除了在您的示例中全局配置了“passenger_ruby”的HTTP块之外,您还可以为每个服务器指定一个单独的Ruby:

server {
  # This Rails web app will use Ruby 1.9.3, as installed by RVM
  passenger_ruby /usr/local/rvm/wrappers/ruby-1.9.3/ruby;
  ...
}

请参阅以下完整文档: http//www.modrails.com/documentation/Users%20guide%20Nginx.html#PassengerRuby

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM