将Ruby webapp推向生产—对流程等感到困惑

将Ruby webapp推向生产—对流程等感到困惑,ruby,nginx,web,Ruby,Nginx,Web,我正准备将一个web应用程序推向生产,该应用程序部分使用Camping框架实现,但大部分是通过黑客攻击实现的 我可能会把它放在nginx后面,但我过去做过的唯一一个投入生产的web开发是使用PHP和node.js的Apache—我真的不太明白在将Ruby web应用推向生产时内存和进程中发生了什么 Camping提供了一个默认情况下在3301端口上运行的开发服务器。我突然想到,有了Nginx,我就可以对该端口上运行的进程进行反向代理,以处理对应用程序的任何请求。这是个糟糕的主意吗 如果我用另一种

我正准备将一个web应用程序推向生产,该应用程序部分使用Camping框架实现,但大部分是通过黑客攻击实现的

我可能会把它放在nginx后面,但我过去做过的唯一一个投入生产的web开发是使用PHP和node.js的Apache—我真的不太明白在将Ruby web应用推向生产时内存和进程中发生了什么

Camping提供了一个默认情况下在3301端口上运行的开发服务器。我突然想到,有了Nginx,我就可以对该端口上运行的进程进行反向代理,以处理对应用程序的任何请求。这是个糟糕的主意吗

如果我用另一种方式——使用WSGI,或者使用Unicorn/Thin的反向代理——那么并发到底会发生什么呢?我会为每个请求生成一个新的Ruby进程吗?我的webapp的所有设置、所有类的定义和生成以及其他一切都必须从头开始?在缓存我的应用程序状态的堆栈的某个级别上是否有一些向导


对不起,我的问题很混乱-我真的不知道这是如何工作的,当它介于Apache处理PHP的绝对方式和node.js HTTP服务器只在端口上侦听的单一进程(通常)之间时。

在unicorn或thin下运行你的应用程序是完全正常的,所以我不会担心这一点。我不知道你说的并发是什么意思


Unicorn/thin将只加载一次您的配置/类等。Unicorn将为每个请求派生一个进程,但这不会重新加载您的应用程序。

对于任何基于机架的应用程序(Rails、Camping、Sinatra…),通常是一种方法。它非常、非常容易设置(不需要摆弄代理),并且可以与Nginx和Apache一起使用。

啊,所以他们有一些Ruby的概念。酷。我只是做了一系列的运行时动态类生成和一些网络接口的创建,这些接口在设置时会被阻塞,所以我担心每个请求都必须这样做。