首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么要将nginx与Catalyst/Plack/Starman一起使用?

为什么要将nginx与Catalyst/Plack/Starman一起使用?
EN

Stack Overflow用户
提问于 2010-05-31 00:13:24
回答 3查看 6.7K关注 0票数 24

我正在尝试使用Plack/Starman部署我的小Catalyst web应用程序。所有的文档似乎都建议我将其与nginx结合使用。这样做的好处是什么?为什么不直接在端口80上使用Starman?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-05-31 00:58:21

它不一定是特定的nginx,但出于以下几个原因,您需要某种类型的前端服务器来代理您的应用程序服务器:

  1. ,以便您可以作为普通用户在高位端口上运行Catalyst服务器,同时在端口80上运行前端服务器。
  2. 可以提供静态文件(图像、JS和CSS等普通资源,以及您可能希望使用的X-Sendfile或X-Accel-Redirect的任何类型的下载),而不会在下载过程中占用perl进程。
  3. 如果您想要转移到更复杂的配置,例如Edge Side Includes,它使事情变得更容易。或者让the服务器直接从memcached或mogilef提供服务( nginx可以做这两件事),或者负载平衡/ HA配置。
票数 39
EN

Stack Overflow用户

发布于 2010-05-31 01:06:47

我在#plack上问了这个问题,并从@nothingmuch得到了以下响应(我添加了格式化):

使用nginx你可以设置负载均衡/故障转移类型的东西。如果网站很小/简单,那可能就太夸张了。

我不知道Starman可能有什么缺点。也许如果你在静态文件上有很多点击,nginx会使用更少的cpu/内存来处理它们,但这在一个典型的web应用程序中不太可能很重要。较大的下载量可能会占用Starman员工的静态文件下载时间。(也许不是,使用sendfile。)这就是我能想到的全部。

如果您希望在不停机的情况下进行升级,则...A故障转移设置非常有用。(“失败”旧版本。)

票数 9
EN

Stack Overflow用户

发布于 2014-10-21 05:39:46

另一个原因是,轻量级前端服务器(即使是Apache也可以)在每个连接上消耗的内存比典型的Starman进程少得多(只有几MB,而不是几十MB或超过100 MB)。由于连接打开了一段时间,特别是当您想要使用保持连接时,您可以使用更少的RAM来支持大量的同时连接。只需确保代理前端服务器的缓冲区大小足以立即从后端加载典型的HTTP响应。然后,后端可以自由地处理下一个请求。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2939393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档