![以常规方式运行 Python Web 应用程序和在 wsgi 下运行它们有什么区别?](https://linux22.com/image/665268/%E4%BB%A5%E5%B8%B8%E8%A7%84%E6%96%B9%E5%BC%8F%E8%BF%90%E8%A1%8C%20Python%20Web%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%92%8C%E5%9C%A8%20wsgi%20%E4%B8%8B%E8%BF%90%E8%A1%8C%E5%AE%83%E4%BB%AC%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB%EF%BC%9F.png)
我知道,为了在服务器上运行 Python Web 应用程序(使用 Flask 和 Django 等框架开发的应用程序),您需要使用诸如uwsgi
、wsgi
..等来部署它,并将其配置为与&gunicorn
等 Web 服务器一起运行。apache2
nginx
但是,我知道我只需运行python my_app.py
,应用程序就会使用以下端口在服务器上运行:mywebsite.com:5000
。我可以使用 Web 服务器上的代理重定向mywebsite.com:5000
到test.example.com
我想要的任何地方。
那么这两种方式有什么区别?我应该使用哪一种?
谢谢。
答案1
并非所有框架都是这种情况,但是当您在所引用的 dev http 模式下运行时,django 和 flask 仅仅是单线程的。
因此服务器一次只能处理一个连接。因此如果两个连接同时到来,服务器将处理其中一个,而让另一个等待。
前面带有 apache/nginx 的 wsgi 服务器将同时处理许多连接。