使用nginx作为生产应用程序的前门?

使用nginx作为生产应用程序的前门?,nginx,production-environment,Nginx,Production Environment,我在为生产部署应用程序时遇到了一些问题,我的问题是这样的 在生产中,您是否应该始终为您的web应用程序(节点、php、python、ruby)提供一个nginx(或任何其他web服务器) 我想卸载ssl、保留连接、错误页面服务和其他http服务器(可能是缓存?)是有意义的,但是有没有任何理由支持让您的实际应用服务器处理所有事情?安全是这个领域的一个问题吗 提前感谢,为了回答这个问题,我想引用“吻”的原则,就像在《保持简单》…你知道其余的 在对开发人员和运营人员进行了一番研究后,我发现,除非你真的

我在为生产部署应用程序时遇到了一些问题,我的问题是这样的

在生产中,您是否应该始终为您的web应用程序(节点、php、python、ruby)提供一个nginx(或任何其他web服务器)

我想卸载ssl、保留连接、错误页面服务和其他http服务器(可能是缓存?)是有意义的,但是有没有任何理由支持让您的实际应用服务器处理所有事情?安全是这个领域的一个问题吗


提前感谢,

为了回答这个问题,我想引用“吻”的原则,就像在《保持简单》…你知道其余的

在对开发人员和运营人员进行了一番研究后,我发现,除非你真的有目的(缓解特定的安全漏洞、提供静态文件、在多个应用程序服务器之间平衡负载的revProxy请求),否则将web服务器作为web应用程序的前端可能弊大于利,由于它是一个单独的组件进行管理,可能会在增加开销的同时引入安全问题


不同的服务器端语言有不同的具体解决方案,java有tomcat jboss和老glassfish,ruby有unicorn+raptor,所以在生产中检查每个应用程序的需求是个问题。

看看这个。使用nginx作为前门似乎可以解决安全问题,“CVE-2013-4450是通过在Node前面运行类似nginx的东西来阻止的”这篇文章对您的问题也有一些很好的内容,我的意思是,我理解,对于Node来说,这是一个非常有效的策略,但是,这对于其他服务器端语言仍然适用?还是更像是一个具体的案例而不是一般的规则?因为在我的研究中,我发现了很多关于与节点相关的nginx部署的资料,但是对于ruby/python/php/java来说,情况似乎并非如此