Nginx, Django y Green Unicorn, magia negra

Default

Para estrenar el blog, vamos con un buen ladrillo. Vamos a hablar sobre cómo está montada ésta web.

Intro

Ésta web la he creado principalmente, para aprender. En ella uso Django, Ngnix, Gunicorn… Os lo muestro con una imagen para que quede más claro.

Nginx

En este caso, Nginx lo estoy usando como proxy sólamente. Uso Nginx en vez de Apache, Lighttp o FastCGI porque… bueno… es lo más jodido trendy, todo el
mundo quiere a Nginx. No, ahora en serio, lo uso porque Apache lo he usado en ocasiones anteriores, y lo que necesito es un proxy que redirija el tráfico que
vaya hacia jlgarcia.me/blog a un puerto en el que corre Green Unicorn.

La configuración que uso en Nginx es la siguiente:

server {
     server_name jlgarcia.me;
     access_log /var/log/nginx/nginx_access.log;
     location / {
          alias /var/www/;
     }
     location /blog {
          proxy_pass    http://127.0.0.1:1337/blog;
     }
     location /static {
          alias /var/www/static/;
     }
}

Lo que hacemos en esta configuración es:

  • Servir el dominio jlgarcia.me
  • Enviar las peticiones a jlgarcia.me a la carpeta raíz de mi servidor
  • Pasar las peticiones al jlgarcia.me/blog al servidor que está corriendo en el puerto 1337 en nuestra máquina mediante Green Unicorn
  • Servir el contenido estático (CSS, Javascript, imágenes…) de nuestra carpeta Static

Sobre Green Unicorn

Con Gunicorn, lo que hacemos es servir en sí el contenido de Django. Es bastante fácil de usar y configuración requiere cero. Lo que he hecesitado para que
funcione es instalarlo:

sudo pip install gunicorn

Después añadirlo a las installed apps de Django en la configuración y, por último, parra arrancar el servidor uso la siguiente instrucción:

Ésto lo que hace es correr el servidor en modo “daemon” en el puerto 1337. Rly Ez!

Bootstrap

Aceptémoslo, el frontend para un retrasado visual —como yo— es bastante jodido. Lo que quería para ésta web era un diseño que no necesitara imágenes principalmente —de hecho no tengo ninguna hecha por mí en todo el diseño— Además tenemos el que es completamente responsive, que es un estándar y que es bastante bonito.

Espero haber dado suficiente coñazo… Nos vemos!