Python Falcon 部署
可以使用启用了 mod_wsgi 模块的Apache服务器来部署Falcon网络应用,就像任何WSGI应用一样。另一个选择是使用 uWSGI 或 gunicorn 进行部署。
uWSGI是一个快速且高度可配置的WSGI服务器。如果与NGNIX一起使用,在准备生产的环境中,它能以速度的形式提供更好的性能。
首先,用PIP安装程序在Python虚拟环境中安装Falcon和uWSGI,用wsgi.py将Falcon的应用对象暴露给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。
安装Ngnix,然后创建一个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;
}
}
最后启动Ngnix服务器。你应该有一个正在运行的应用程序。