Alojar su sitio web de Django en un CentOS VPS

Alojar cualquier sitio web/aplicación web en un servidor en vivo a veces puede volverse difícil si no se toman las medidas adecuadas al implementarlo. Existen principalmente 3 tipos diferentes de hosting:

  1. Alojamiento compartido : generalmente se usa para sitios web pequeños (de una sola página) con tráfico limitado.
  2. Alojamiento VPS: el alojamiento VPS (servidor privado virtual) se utiliza para sitios web con una buena cantidad de contenido y tráfico medio a alto.
  3. Alojamiento dedicado : este alojamiento se usa generalmente para sitios web de grandes empresas con mucho contenido y alto tráfico.

En este artículo, discutiremos principalmente sobre el alojamiento VPS.

VPS

VPS o Virtual Private Server es una sola máquina física utilizada por muchos de sus usuarios. Un servidor físico en algún lugar del mundo equipado con virtualización sirve a sus usuarios como un sistema dedicado separado para su uso. Divide los recursos disponibles entre los diferentes usuarios y para cada uno de sus usuarios, parece como si estuvieran usando una máquina dedicada separada.

Puntos a tener en cuenta antes de hospedar:

  • Asegúrese de que el sistema operativo del servidor esté actualizado y que todo el resto del software que utiliza esté actualizado.
  • Verifique que la versión de los paquetes y bibliotecas del entorno local sea la misma que en el VPS también.
  • Si las versiones son diferentes, asegúrese de desinstalar las versiones existentes e instalar las mismas versiones requeridas en el servidor.
  • Elija un servidor que se ejecutará en el sistema operativo de su VPS para servir los archivos de su sitio web. (En este artículo usaremos Nginx).
  • Siempre verifique si su proveedor de alojamiento tiene un buen soporte para sus clientes o no.

Acceso raíz y SSH 

Cuando compre un VPS, se le proporcionarán las credenciales de inicio de sesión raíz. Hay algunos proveedores de alojamiento que tienen un terminal incorporado que se puede usar con acceso de root. En ese caso, SSH generalmente no es necesario.

SSH (Secure Shell) es una interfaz de línea de comandos para administrar su VPS. Le ayuda a conectarse a su shell VPS de forma segura. Para el acceso SSH, es posible que deba ponerse en contacto con el proveedor de alojamiento si no está habilitado. Si está habilitado, puede continuar.

Masilla

Este es un emulador de terminal gratuito y de código abierto que lo ayuda a acceder al shell de su VPS usando SSH desde su sistema local. Descargue PuTTY en su sistema local usando el sitio web oficial: https://www.putty.org/

Para usar PuTTY, primero debe tener pares de claves públicas y privadas. Estos pares de claves se pueden generar con PuTTYgen o se pueden crear con la interfaz de alojamiento (como WHM). Después de crear los pares de claves pública y privada, puede descargar la misma clave privada en su sistema local y después de abrir PuTTY, puede cargar el archivo de clave privada a través de: Conexión -> SSH -> Autenticación, como se muestra en la figura a continuación:

Explore el archivo de clave privada y cárguelo para autorización en PuTTY para acceso SSH

Después de cargar, vaya a la pestaña de sesión e ingrese la dirección IP de su servidor como se muestra en la imagen a continuación:

 Luego haga clic en abrir y será redirigido a una terminal con el acceso ssh de su servidor. Desde esa terminal puedes gestionar tu servidor. Ese terminal es casi lo mismo que usar un terminal en su máquina VPS.

Nota : Hay muchas formas de conectarse a su servidor usando ssh. Lo mencionado anteriormente es solo una forma de hacerlo. 

Preparándose para la implementación

Instale todos los paquetes y bibliotecas necesarios verificando sus versiones con su entorno local. También descargue los softwares necesarios para ejecutar su sitio web.

  • Habilitar el repositorio EPEL
  $ sudo yum install epel-release
  • Instalar los paquetes necesarios 
  $ sudo yum install <package/depedency_name> 

Ahora puede transferir los archivos de su sitio web desde el sistema local a su VPS usando una copia segura (scp) a través de PuTTY o puede crear un repositorio de su sitio web en github y desde allí puede clonarlo en su VPS.

Recomiendo cargar los archivos de su sitio web en el directorio /var/www/<my-website>.

Para un sitio web de Django, hoy en día es imprescindible crear un entorno virtual, ya que le permite tener proyectos separados ejecutándose en la misma máquina sin que entren en conflicto las dependencias y versiones de los demás. Entonces, comience creando un entorno, activándolo y asegurándose de que todas las dependencias se instalen para su sitio web dentro del entorno.

Nota : este artículo asume que tiene un sitio web listo en su host local para hospedaje y, por lo tanto, no seguiremos los pasos para crear uno nuevo.

Una vez que haya terminado de instalar las dependencias y mover los archivos de su sitio web, debe crear un servidor de base de datos en su VPS. Aquí usaremos PostgreSQL.

Configuración de la base de datos de su sitio web en su VPS

  • Cree su base de datos y su nuevo rol (usuario de la base de datos) para el sitio web usando psql y actualice su archivo settings.py en consecuencia.
  • Ejecute el siguiente comando en su terminal ssh para crear migraciones para su base de datos:
  (project_env) $ python manage.py makemigrations
  • Asegúrese de que todas las migraciones se creen correctamente y que no se produzcan errores al crear migraciones. Ahora migre la base de datos:
  (project_env) $ python manage.py migrate

Restablecimiento del historial de migración en el sistema local

  • Vea las migraciones actuales usando el comando:
  (local_project_env) $ python manage.py showmigrations
  • Repita este paso para borrar el historial de migración de todas las aplicaciones en su sitio web/proyecto:

           ( Nota : aquí my-app debe reemplazarse con el nombre de su aplicación).

  (local_project_env) $ python manage.py migrate --fake my-app zero
      (local_project_env) $ python manage.py makemigrations
      (local_project_env) $ python manage.py migrate --fake-initial
    

    Migración de su base de datos existente a PostgreSQL en su VPS

    • Volcar los datos existentes en el sistema local:
      (local_project_env) $ python manage.py dumpdata > dump.json
    
    • Mueva el archivo dump.json de su sistema local a VPS usando github o copia segura (scp).
    • Ejecute el shell de python y elimine los datos de tipo de contenido:

                ( Nota : Ejecute los siguientes comandos en la terminal del servidor (ssh))

      (project_env) $ python manage.py shell 
       >>> from django.contrib.contenttypes.models import ContentType
       >>> ContentType.objects.all().delete()
       >>> quit
    
        (project_env) $ python manage.py loaddata dump.json

      Publicación traducida automáticamente

      Artículo escrito por gauravsonisonigaurav y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

      Deja una respuesta

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