Opscode Chef cookbook that installs and configures uWSGI. uWSGI is a fast, self-healing and developer/sysadmin-friendly application container server coded in pure C.
- Debian, Ubuntu
- python
- runit
uwsgi_service
:home_path
- path to the app you want to run with uWSGI, default to"/var/www/app"
:pid_path
- path to pid file for uWSGI, default to"/var/run/uwsgi-app.pid"
:config_file
- path to configuration file, default tonil
, overrides the below options if notnil
:config_type
- configuration file type, default to:ini
:host
- hostname to run uWSGI on, default to"127.0.0.1"
:port
- port number to run uWSGI on, default to8080
:socket
- socket to listen on, default to#{host}:#{port}
:worker_processes
- number of uWSGI workers, default to2
, should probably be relative to the number of CPUs:app
- app to run on uwsgi, passed to --module parameted of uWSGI, default to"main:app"
:uid
- user-id to run uwsgi under, default to"www-data"
:gid
- group-id to run uwsgi under, default to"www-data"
:master
- enable uwsgi master process, default tofalse
:no_orphans
- kill workers without a master process, default tofalse
:die_on_term
- make uwsgi die on term signal, default tofalse
:close_on_exec
- set close-on-exec flag on uwsgi socket, default tofalse
:lazy
- load application after worker fork(), default tofalse
:disable_logging
- disable uwsgi request logging, default tofalse
:start_immediately
- decide whether you want to start the service immediately or later manually, default totrue
Add the default uWSGI recipe to install uwsgi through pip. Define a uWSGI service with a definition like so:
uwsgi_service "myapp" do
home_path "/var/www/app"
pid_path "/var/run/uwsgi-app.pid"
host "127.0.0.1"
port 8080
worker_processes 2
app "flask:app"
end
You can also use a preexisting uWSGI configuration like so:
uwsgi_service "myapp" do
home_path "/var/www/app"
pid_path "/var/run/uwsgi-app.pid"
config_file "/etc/uwsgi/myapp.yaml"
config_type :yaml
end
If :config_file
is passed, all other options except :home_path
, :pid_path
, and :config_type
are ignored.