uWSGI — Flask 文档
uWSGI
uWSGI 是 nginx、lighttpd 和 cherokee 等服务器上的部署选项; 有关其他选项,请参阅 FastCGI 和 独立 WSGI 容器 。 要使用带有 uWSGI 协议的 WSGI 应用程序,您首先需要一个 uWSGI 服务器。 uWSGI 既是协议又是应用服务器; 应用服务器可以为 uWSGI、FastCGI 和 HTTP 协议提供服务。
最流行的 uWSGI 服务器是 uwsgi,我们将在本指南中使用它。 确保安装它以进行后续操作。
当心
请提前确保您的应用程序文件中的任何 app.run()
调用都在 if __name__ == '__main__':
块内或移动到单独的文件中。 只要确保它没有被调用,因为如果我们将该应用程序部署到 uWSGI,这将始终启动我们不想要的本地 WSGI 服务器。
使用 uwsgi 启动您的应用
uwsgi 旨在对 Python 模块中的 WSGI 可调用对象进行操作。
给定 myapp.py 中的一个烧瓶应用程序,使用以下命令:
--manage-script-name
会将 SCRIPT_NAME
的处理转移到 uwsgi,因为它更聪明。 它与 --mount
指令一起使用,该指令将使对 /yourapplication
的请求被定向到 myapp:app
。 如果您的应用程序可以在根级别访问,您可以使用单个 /
而不是 /yourapplication
。 myapp
指的是您的flask 应用程序的文件名(不带扩展名)或提供app
的模块。 app
是应用程序内部的可调用对象(通常该行读取 app = Flask(__name__)
。
如果您想在虚拟环境中部署您的 Flask 应用程序,您还需要添加 --virtualenv /path/to/virtual/environment
。 您可能还需要根据您的项目使用的 Python 版本添加 --plugin python
或 --plugin python3
。
配置nginx
一个基本的 Flask nginx 配置如下所示:
此配置将应用程序绑定到 /yourapplication
。 如果你想把它放在 URL 根目录中,它会更简单一点: