Pasar a producción - GonzaloAfa/centrointernetv2 GitHub Wiki

Antes de comenzar con la instalación de nginx, es necesario tener instalado apache: sudo apt-get install apache2

Configuremos Nginx

Debemos crear el archivo de configuración para nuestro proyecto, recuerda que si el puerto 80 está siendo usado por Apache2, por alguna otra aplicación o por el mismo Nginx por otra configuración debes liberar primero el puerto, en caso de ser Apache2 debes editar el archivo /etc/apache2/ports.conf y cambiar el puerto 80 por uno diferente, luego reiniciar el servicio Apache2 así:

service apache2 restart

Luego instala nginx en caso de que no lo hayas realizado antes

sudo apt-get install nginx

Después de esto debes crear el archivo de configuración en la carpeta /etc/nginx/sites-avaliable, el nombre del archivo lo eliges tú, yo elegí como nombre archivo.conf . El contenido del archivo debe ser el siguiente:

archivo.conf;

server {

listen      80; 
# puerto por el que escucha la aplicación

server_name <midominio.co>; # nombre o ip del servidor
charset     utf-8;

# tamaño maximo de subida
client_max_body_size <75M>;

# Ruta de la carpeta media
location /media  {
    <alias> </var/www/proyecto/media>; # reemplace por su ruta a media
}

# Ruta de la carpeta static
location /static { <alias> </var/www/proyecto/static>; # reemplace por su ruta a media }

# Configuración de las peticiones que no son resueltas con las
# reglas anteriores. Estas son reenviadas al servidor django
location / { uwsgi_pass 127.0.0.1:<8001>; # 127.0.0.1:PUERTO_AUXILIAR
include     uwsgi_params;
}

}

Cabe resaltar que el puerto auxiliar seleccionado es el 8001, este dato es importante puesto que debemos tenerlo en cuenta para iniciar la labor de uWSGI.

Después de esto es necesario habilitar la nueva configuración creando un enlace simbólico del archivo en la carpeta sites-avaliable de Nginx así:

cd /etc/nginx/sites-enabled

ln -s ../sites-avaliable/archivo.conf .

Finalmente reiniciamos el servidor Nginx

service nginx restart

Configuremos nuestro entorno

Instalamos las siguientes librerias

sudo apt-get install gcc-4.5 python2.7-dev

Necesitamos instalar uWSGI:

pip install uwsgi

Finalmente creamos el archivo para iniciar el proceso de conexión entre Nginx y django, este archivo es un script bash al que yo llame start.sh, este debe tener el siguiente contenido:

#!/bin/bash

uwsgi --socket :8001 --wsgi-file wsgi.py -d mensajes.log

Aquí viene la parte importante, cuando django genera un proyecto él crea una carpeta de proyecto, dentro de ésta hay una carpeta con los archivos de configuración, éstos son settings.py, urls.py, init.py y wsgi.py debe hacer una copia del archivo wsgi.py a la raíz del proyecto y en éste mismo lugar poner el archivo start.sh.

Después es necesario permitir la ejecución de este archivo mediante la orden:

chmod +x start.sh

Luego podemos iniciar el proceso así:

./start.sh

Fuente: http://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html

⚠️ **GitHub.com Fallback** ⚠️