将Ruby webapp推向生产 - 混淆了流程等

时间:2011-11-30 06:54:06

标签: ruby nginx web

我正准备推出一个部分使用Camping框架实现的网络应用程序,但大部分已被黑客攻击,并投入生产。

我可能会把它放在nginx之后,但我过去唯一开发过的Web开发是使用PHP和node.js的Apache - 我真的不明白内存中发生了什么以及将Ruby Web应用程序推向生产时的流程。

Camping提供默认情况下在端口3301上运行的开发服务器。在我看来,使用Nginx,我可以将代理反向代理到该端口上运行的进程,以获取对野营应用程序的任何请求。这是一个糟糕的主意吗?

如果我采用其他方式 - 使用WSGI或反向代理到Unicorn / Thin - 并发性究竟会发生什么?我是否会为每个请求生成一个新的Ruby进程,我的webapp的所有设置以及所有类定义和生成以及其他所有内容都必须从头开始完成?在我的应用程序状态被缓存的堆栈的某个级别是否存在一些魔法?

对不起我的问题的混乱 - 我真的不知道当它介于Apache执行PHP的方式和node.js HTTP服务器具有单个进程(通常)的方式之间的某个位置时它是如何工作的只是听一个端口。

2 个答案:

答案 0 :(得分:0)

在独角兽或瘦身下运行您的应用程序是完全正常的,所以我不会担心这一点。我不确定你对并发的意思?

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

答案 1 :(得分:0)

对于基于机架的任何东西(Rails,Camping,Sinatra ......),Passenger通常是要走的路。设置起来非常非常容易(不需要使用代理)并且可以与Nginx和Apache一起使用。