Serving Flask with nginx

Installing Common Python Tools for Deployment
apt-get install -y python python-dev python-distribute python-pip
apt-get install nginx

Installing The Web Application and Its Dependencies
Download and install Flask and uwsgi using pip

pip install virtualenv
mkdir /var/www/ && cd /var/www/
virtualenv -p /usr/bin/python venv
source venv/bin/activate
pip install uwsgi
pip install flask

rm /etc/nginx/conf.d/default

vim /etc/nginx/conf.d/ngstones

server {
listen 80;
charset utf-8;
client_max_body_size 75M;

location / { try_files $uri @ngstones; }
location @ngstones {
include uwsgi_params;
uwsgi_pass unix:/var/www/;

vim /var/www/

#application's base folder
base = /var/www/

#python module to import
app = hello
module = %(app)

home = %(base)/venv
pythonpath = %(base)

#socket file’s location
socket = /var/www/

#permissions for the socket file
chmod-socket = 666

#the variable that holds a flask application inside the module imported at line #6
callable = app

#location of log files
logto = /var/log/uwsgi/%n.log

vim /var/www/
from flask import Flask
app = Flask(__name__)
def hello():
return “Hello!”
if __name__ == “__main__”:

Restart Nginx to load new config file
service nginx restart
cd /var/www/
uwsgi --ini /var/www/

Finally update your DNS and you are good to go!


Author: Ali MEZGANI

My name is MEZGANI Ali. I was born back in 1978 in Rabat Morocco. My interests are Debian Linux , programming , science and music.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s