uWSGI & Nginx on Ubuntu

Install uWSGI

Configure uWSGI

$ sudo apt-get install python-dev python-pip  
$ sudo pip uwsgi  
################# uWSGI configuration #################  
pcre = False  
kernel = Linux  
malloc = libc  
execinfo = False  
ifaddrs = True  
ssl = True  
matheval = False  
zlib = True  
locking = pthread_mutex  
plugin_dir = .  
timer = timerfd  
yaml = True  
json = False  
filemonitor = inotify  
routing = False  
debug = False  
zeromq = False  
capabilities = False  
xml = expat  
event = epoll  
############## end of uWSGI configuration #############  
*** uWSGI is ready, launch it with /usr/local/bin/uwsgi ***  
Successfully installed uwsgi  
Cleaning up...  
$  

Test uWSGI

Create test file called hello.py:

def application(env, start_response):  
    start_response('200 OK', [('Content-Type','text/html')])  
    return "Hello WSGI!!"  

Run uWSGI:

uwsgi --http :8000 --wsgi-file hello.py  

Open browser connect on port 8000.

http://localhost:8000

Install Nginx

Configure nginx

$ sudo apt-get install nginx-full  

The configure file path : /etc/nginx/sites-enabled/default
Add your site in nginx configure file.

location /wsgi/ {
    uwsgi_pass 127.0.0.1:8001;
    include uwsgi_params;
}  

We use localhost port 8001 for uwsgi protocol, and 80 port for nginx.
Run uwsgi and start nginx.

$ uwsgi --socket :8001 --wsgi-file hello.py  
$ sudo service nginx start  

Test your web site:

http://your-ip/wsgi/  

or

http://localhost/wsgi/

Ref:
uWSGI Tutorial - Django and nginx
WSGI using uWSGI and nginx on Ubuntu 12.04 (Precise Pangolin)

Leave a Comment