Host your Django Website In Ubuntu Server With Ngnix and Uwsgi.
Introduction
What is Ngnix ?
Nginx (pronounced engine-x) is a free, open-source, high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server. Igor Sysoev started development of Nginx in 2002, with the first public release in 2004. Nginx now hosts nearly 12.18% (22.2M) of active sites across all domains. Nginx is known for its high performance, stability, rich feature set, simple configuration, and low resource consumption.
What is Uwsgi ?
The uWSGI project aims at developing a full stack for building hosting services.applicaton servers( for various programing languages and protocols),proxies , process managers and monitors are all implemented using a common api and common configuration style.
Working Diagram for Ngnix, uWSGI with Python frameworks.
Configuration
First install required applications:
sudo apt-get install nginx uwsgi uwsgi-plugin-python python-virtualenv, Here we are installing all the packages in single command ( ngnix , uwsgi and uwsgi packages and virtual env )
I think you all have ready Django project. Now iam going to explain about the configuration for Hosting our django project with Ubuntu Server.
Versions of packages that will be used:
- Nginx
- Uwsgi
- Virtualenv
- Django 1.7.7
Step 1 : Activate your virtual env and run your django project ,
Example :
cd `/myprojects/
virtualenv global
source gobal/bin/activate
pip install django
django-admin.py startprojeect logiconline
Step 2 : Nginx configuration.
Configuration files are stored in /etc/ngnix/site-available. Go to this Directory and create new file for our project logiconline.
cd /etc/nginx/site-available
sudo subl logiconline.in
( This command will create a file for project , subl( Sublime text editor )
Example configuration :
listen 80;
server_name logiconline.in www.logiconline.in;
access_log /var/log/nginx/logiconline.in_access.log;
error_log /var/log/nginx/logiconline.in_error.log;
location / {
uwsgi_pass unix:///tmp/logiconline.in.sock;
include uwsgi_params;
}
location /media/ {
alias /home/myprojects/logiconline/media/;
}
location /static/ {
alias /home/myprojects/logiconline/static/;
}
}
We must create symlink to enable this.
cd /etc/ngnix/sites-enabled
ln -s ../sites-available/logiconline.in.
Uwsgi Configurat.ion
Like with Nginx.. configuration files are stored in /etc/uwsgi/apps-available. Go to this directory and create a new file.
cd /etc/uwsgi/apps-available
sudo subl logiconline.in.ini
Example : Uwsgi File
[uwsgi]
vhost = true
plugins = python
socket = /tmp/logiconline.in.sock
master = true
enable-threads = true
processes = 2
wsgi-file = /home/myprojects/logiconline/logiconline/wsgi.py
virtualenv = /home/global
chdir = /home/myprojects/logiconline
touch-reload = /home/myprojects/logiconline/reload
Enable this.
cd /etc/uwgi/apps-enabled/
ln -s ../apps-available/logiconline.in.ini
Step 3 : That's all. Now, run this services.
sudo service nginx start
sudo service uwsgi start
This is very basic configuration for Hosting your project in Ubuntu server.Change it according to your need , any Querys Please feel free to contact me : renjithsraj@live.com and 9746272610
No comments:
Post a Comment