繁体   English   中英

如何在一台服务器上运行多个微型Ruby(机架)应用程序?

[英]How to run multiple tiny Ruby (Rack) apps on one server?

我想在我的VPS服务器上运行几个(> 2个)基于Rack的微型应用程序,该服务器已经运行了一个大型Rails应用程序。

Rails应用使用传统的“ Unicorn + nginx”对,它需要我VPS机器上拥有的大部分RAM资源。

我尝试为每个应用程序添加类似的Unicorn配置,这导致我出现RAM资源不足的情况。

因此,我的问题是:是否可以设置一个小型的,节省内存的棘手服务器,该服务器将允许一次运行所有Sinatra应用程序?

更新:万一有什么关系,我不太在意性能。 这些应用程序不打算做任何认真的工作。

UPDATE2:与Nginx共享的基于套接字的方法比带有端口的方法更为可取。

谢谢!

我对这个问题进行了自己的探索,我想我找到了一个解决方案,该解决方案使我可以让一个Web服务器同时运行所有微型应用程序。

它基于Remi Taylor(Github上的@remihttps://github.com/remi/rack-stack创建的RackStack尚未创建。

RackStack受Rack :: Builder的启发,它似乎也很适合完成这样的任务-RackStack朝着同一方向进一步发展,以我发现非常方便的方式抽象了“堆栈”功能。

这是RackStack的演示,其中包含两个示例应用程序(Sinatra和Rack): https : //github.com/stanislaw/skeletons/tree/master/rack_stack 为了模拟真实服务器上的堆栈应用程序行为,我修改了/ etc / hosts文件,使localhost2主机指向127.0.0.1。

我启动了瘦服务器,然后在localhost或localhost2上运行请求:对“ localhost”的请求由FirstApp服务,而由SecondApp进行的“ localhost2”请求。

我现在无法预见在实际服务器上测试应用程序时可能出现的任何问题,但是现在这种方法似乎正是我所要的:我想,在真实服务器上Nginx会将请求传递给与机架应用程序关联的所有主机都连接到Thin Server侦听的套接字。 因此,RackStack将仅满足那些针对我堆栈中的应用程序的请求。

任何建议,此方案或替代方案的改进仍然表示赞赏!

暂无
暂无

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

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