Python Falcon - 部署



可以使用启用 mod_wsgi 模块的 Apache 服务器部署 Falcon Web 应用,就像任何 WSGI 应用一样。另一种选择是将 uWSGIgunicorn 用于部署。

UWSGI 是一个快速且高度可配置的 WSGI 服务器。如果与 NGINX 一起使用,它会在生产就绪环境中以速度的形式提供更好的性能。

首先,在 Python 虚拟环境中使用 PIP 安装程序安装 Falcon 和 uWSGI,并将 Falcon 的应用程序对象通过 wsgi.py 暴露给 uWSGI,如下所示 −

import os
import myapp
config = myproject.get_config(os.environ['MYAPP_CONFIG'])
application = myapp.create(config)

要配置 uWSGI,准备一个 uwsgi.ini 脚本,如下所示 −

[uwsgi]
master = 1
vacuum = true
socket = 127.0.0.1:8080
enable-threads = true
thunder-lock = true
threads = 2
processes = 2
virtualenv = /path/to/venv
wsgi-file = venv/src/wsgi.py
chdir = venv/src
uid = myapp-runner
gid = myapp-runner

你现在可以像这样启动 uWSGI −

venv/bin/uwsgi -c uwsgi.ini

尽管 uWSGI 可以直接处理 HTTP 请求,但使用诸如 NGINX 这样的反向代理可能会有所帮助。NGINX 本身支持 uwsgi 协议,用于向 uWSGI 有效代理请求。

安装 Nginx,然后创建一个看起来像这样的 NGINX conf 文件 −

server {
   listen 80;
   server_name myproject.com;
   access_log /var/log/nginx/myproject-access.log;
   error_log /var/log/nginx/myproject-error.log warn;
   location / {
      uwsgi_pass 127.0.0.1:8080
      include uwsgi_params;
   }
}

最后启动 Nginx 服务器。你应该有一个正在运行的工作应用程序了。

广告