uWSGI + Flask + NGinx configuration

uwsgi.ini:

[uwsgi]

chdir           = /home/ubuntu/nivose
virtualenv      = /home/ubuntu/nivose/venv/
module          = app:app

master          = true
processes       = 2
socket          = /tmp/nivose.sock
chmod-socket    = 666
vacuum          = true

/etc/nginx/sites-enabled/:

upstream nivose_flask {
    server unix:///tmp/nivose.sock;
}


server {
    listen 80;
    server_name nivose.5pointers.com;
    access_log /var/log/nginx/nivose.access.log;
    error_log /var/log/nginx/nivose.error.log;


    location /static/ { # STATIC_URL
        alias /home/ubuntu/nivose/app/static/; # STATIC_ROOT
        expires 30d;
    }

    location /media/ { # MEDIA_URL
        alias /home/ubuntu/nivose/app/media/; # MEDIA_ROOT
        expires 30d;
    }

    location / {
        uwsgi_pass  nivose_flask;
        uwsgi_param  QUERY_STRING       $query_string;
        uwsgi_param  REQUEST_METHOD     $request_method;
        uwsgi_param  CONTENT_TYPE       $content_type;
        uwsgi_param  CONTENT_LENGTH     $content_length;

        uwsgi_param  REQUEST_URI        $request_uri;
        uwsgi_param  PATH_INFO          $document_uri;
        uwsgi_param  DOCUMENT_ROOT      $document_root;
        uwsgi_param  SERVER_PROTOCOL    $server_protocol;
        uwsgi_param  REQUEST_SCHEME     $scheme;
        uwsgi_param  HTTPS              $https if_not_empty;

        uwsgi_param  REMOTE_ADDR        $remote_addr;
        uwsgi_param  REMOTE_PORT        $remote_port;
        uwsgi_param  SERVER_PORT        $server_port;
        uwsgi_param  SERVER_NAME        $server_name;
    }
}

To start the project use command=uwsgi --ini /home/ubuntu/nivose/uwsgi.ini (I'm using supervisor to manage processes).

Comments

comments powered by Disqus