Django despliegue: Debian + Chausette + Circus + Nginx

Dependencias:
Libreria de python

apt-get install python-dev

 

Virtualenv
virtualenvwrapper
 

Pip manejador de paquetes de python

apt-get install python-pip

 

Instalación de circus

pip install circus

 

Instalación de Chaussette

pip install chaussette

 

Instalación de Nginx

apt-get install nginx

Acceder al sitio http://127.0.0.1 para verificar que nginx esté corriendo
 

La ubicación del proyecto de django es una cuestión de gusto, en mi caso la ubico en el home y luego clone el repositorio

mkdir /home/www-data/
cd /home/www-data/
git clone https://github.com/sdcasas/nombreProyectoDjango.git

la dirección mencionada en ficticia, se debe poner la ruta de su proyecto.

Abrimos la carpeta e instalamos las dependencias del proyecto

cd nombreProyectoDjango

Suponiendo que hiciste un archivo con las dependencias del proyecto

pip install -r requirements.txt

Corremos el proyecto para verificar que funcione

./manage runserver

 

Ahora hay que crear la configuración de circus para el proyecto, la podemos guardar dentro de la carpeta del proyecto nombreProyectoDjango/deploy/circus.conf y agregamos lo siguiente.

[circus]
check_delay = 5
endpoint = tcp://127.0.0.1:5555
pubsub_endpoint = tcp://127.0.0.1:5556
 
[watcher:nombreProyectoDjango]
working_dir = /home/www-data/nombreProyectoDjango
cmd = /home/nombreDeUsuario/.envs/nombreProyectoDjango/bin/chaussette
args = --fd $(circus.sockets.nombreProyectoDjango) config.wsgi.application
use_sockets = True
numprocesses = 3
autostart = True
 
[env:nombreProyectoDjango]
PYTHONPATH = /home/www-data/nombreProyectoDjango/
 
[socket:nombreProyectoDjango]
host = localhost
port = 8000

 

Agregar la configuración para nginx, para lo cual creamos un archivo

 touch /etc/nginx/sites-enabled/nombreProyectoDjango

y le Agregamos lo siguiente:

server {
    listen 80;
    charset utf-8;
    # poner la dirección ip del servidor en caso de que se quiera acceder desde toda la red
    server_name 127.0.0.1;
    client_max_body_size 4G;
 
    location /static/ {
        alias /home/www-data/nombreProyectoDjango/static/;
        autoindex on;
    }
 
    location /media/ {
        alias /home/www-data/nombreProyectoDjango/media/;
    }
 
    location / {
        proxy_pass http://localhost:8000/;
        proxy_pass_header Server;
        proxy_set_header Host $host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_connect_timeout 600;
        proxy_send_timeout 600;
        proxy_read_timeout 600;
    }
 
    access_log /home/www-data/nombreProyectoDjango/deploy/logs/nginx-access.log;
    error_log /home/www-data/nombreProyectoDjango/deploy/logs/nginx-errors.log;
}

El directorio deploy/logs/ debe tener permisos de escritura para que se puedan escribir los log en el mismo

Tener en cuenta que dentro de la confguracion de ngin (/etc/nginx/nginx.conf) exista la siguiente linea:

include /etc/nginx/sites-enabled/*;

Referenca mgaitan.github.io

Publicado en debian, Django, GNU/Linux, Instalacion, Programación, Python, Terminal

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

Categorías

Marzo 2017
L M X J V S D
« Feb   Abr »
 12345
6789101112
13141516171819
20212223242526
2728293031