我已经做了一段时间的网络编程,并且对LAMP堆栈非常熟悉.我决定尝试玩弄nginx的/接龙/舞者堆栈和我有点困惑如何理解,从一个高层次,所有的部分是如何相互关联的.设置堆栈似乎并不像设置LAMP堆栈那样简单,但这可能是因为我并不真正了解这些部分是如何相关的.
我理解nginx正在扮演的角色 - 一个轻量级的网络服务器/代理 - 但我对starman与pgsi,plack和舞者的关系感到困惑.
我将非常感谢这些部分如何相互关联以及为什么每个部分都需要(或不必要)来获得堆栈设置的高级细分.谢谢!
Web应用程序框架(如sinatra(ruby),play(scala),lift(scala))生成一个侦听特定端口的Web服务器.
我知道有一些原因,如安全性,群集以及在某些情况下的性能,可能会导致我在我的Web应用程序前面使用Apache Web服务器.
根据您的经验,您有任何理由吗?
如今,运行Perl Web应用程序的一个非常流行的选择似乎是nginx webserver代理对FastCGI守护程序或PSGI启用的Web服务器(例如Starman)的请求.
关于为什么一般会这样做会有很多问题(例如为什么在Catalyst/Plack/Starman中使用nginx?)并且答案似乎适用于这两种情况(例如,允许nginx提供静态内容,轻松重启应用程序服务器,负载均衡等)
但是,我对使用FastCGI与反向代理方法的优缺点特别感兴趣.似乎Starman被广泛认为是最快和最好的Perl PSGI应用程序/网络服务器,我很难看到使用FastCGI的任何优势.这两种方法似乎都支持:
同样,任一选项的nginx配置都非常相似.
那你为什么选择一个呢?