似乎uwsgi能够完成我使用nginx的所有功能:提供静态内容、执行PHP脚本、托管Python Web应用等。为了简化我的环境,那么我是否可以用uwsgi代替nginx+uwsgi而不会损失性能/功能?
我能在生产环境中使用uWSGI的HTTP功能吗?
如果您需要负载均衡器/代理,这可能是一个非常好的选择。它会自动查找新的uWSGI实例,并可以通过各种方式进行负载平衡。如果您想将其用作真正的Web服务器,则应考虑在uWSGI实例中提供静态文件是可能的,但不如使用专用的全功能Web服务器那么好。如果您将静态资源托管在云或CDN上,则可以使用uWSGI的HTTP功能避免配置完整的Web服务器。
因此,是的,uWSGI比传统Web服务器要慢。
除了性能之外,在一个真正基本的应用程序中,你是正确的,uWSGI可以做到Web服务器提供的所有功能。然而,如果您的应用程序随着时间的推移而增长/改变,您可能会发现许多传统Web服务器提供的功能uWSGI并没有提供。
我建议使用您选择的语言(例如Python中的Fabric)设置部署脚本。 我认为我的Web服务器是我们应用程序堆栈中最简单的组件之一,也是最不需要关注的 - 除非我正在配置新服务器,否则很少出现在我的视线中。