簡體   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