English 中文(简体)
Python Falcon - Deployment
  • 时间:2024-12-22

Python Falcon - Deployment


Previous Page Next Page  

It is possible to use Apache server enabled with the mod_wsgi module to deploy a Falcon web app, just as any WSGI app. Another alternative is to use uWSGI or gunicorn for deployment.

The uWSGI is a fast and highly configurable WSGI server. If used along with NGNIX, it gives better performance in the form of speed in the production ready environment.

First, install Falcon and uWSGI in a Python virtual environment with PIP installer and expose the Falcon s apppcation object to uWSGI it with wsgi.py as below −


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

To configure uWSGI, prepare a uwsgi.ini script as below −


[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

You can now start the uWSGI pke this −


venv/bin/uwsgi -c uwsgi.ini

Although uWSGI may serve HTTP requests directly, it can be helpful to use a reverse proxy such as NGINX. NGINX natively supports the uwsgi protocol, for efficiently proxying requests to uWSGI.

Install Ngnix and then create an NGINX conf file that looks something pke this −


server {
   psten 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;
   }
}

Finally start the Ngnix server. You should have a working apppcation running.

Advertisements