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.它允许每个工具做它擅长的事情而不关心过程的其他部分.没有什么特别低效的东西,直到你达到真正的大规模.

相关文章

###进入nginx 目录cd /usr/local/nginx###递归显示 2 级目录...
在cmd命令窗口输入下面命令进行查看 tasklist /fi "ima...
Nginx显示500错误原因和解决方法
linux系统下启停nginx的命令
nginx 的 default_server 指令可以定义默认的 server出处理一...
Nginx是一款轻量级的 Web 服务器、反向代理服务器,由于它的...