微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 为什么使用Nginx运行Flask需要一个WSGI包装器?

因此,从Python / Flask文档中,他们都建议不要将Flask Web服务器作为生产Web服务器运行,这是有意义的.我的问题是,我能够在Nginx服务器上运行我的Flask应用程序吗?为什么互联网上的所有指南都建议在UWsgi,Tornado或其他一些Wsgi服务器上包装Flask? Wsgi是什么意思? Flask WGSI不兼容吗?

我特别失去了因为here,第一反应说:

Apache and Nginx are both HTTP servers.They can serve static files like
(.jpg and .html files) or dynamic pages (like a wordpress blog or forum written in a language like PHP or Python).

但是this帖子说:

Nginx is a web server. It serves static files,however it cannot execute and host
Python application. uWsgi fills that gap.

我的应用程序由服务器(例如:uWsgi)和另一台服务器(例如:Nginx)处理似乎效率低下.

最佳答案
Nginx一个Web服务器,关注Web服务器的东西,而不是如何运行Python程序. uWsgi一个应用服务器,知道如何用Python(现在和其他语言)说Wsgi. Nginx和uWsgi都使用uWsgi协议,这是一种比UNIX套接字更有效的协议.

Nginx处理来自/响应外部世界的http请求(可能是负载平衡,缓存等). Flask应用程序处理Wsgi请求/响应. uWsgi知道如何启动应用程序(可能使用多处理和/或线程)并弥合HTTP和Wsgi间的差距.

这种设置被称为reverse proxy.它允许每个工具做它擅长的事情而不关心过程的其他部分.没有什么特别低效的东西,直到你达到真正的大规模.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐