Introducción
Una vez que hayamos terminado de desarrollar la aplicación web, debe estar alojada para que el público pueda acceder a ella desde cualquier lugar. Veremos cómo implementar y alojar una aplicación en una instancia AWS EC2 utilizando Nginx como servidor web y Gunicorn como WSGI.
AWS EC2
Amazon Elastic Compute Cloud (Amazon EC2) es un servicio web que proporciona potencia informática escalable en la nube. Instalamos y hospedamos nuestras aplicaciones web en una instancia EC2 después de seleccionar una AMI (SO) a nuestra discreción. Hablaremos más sobre esto en las siguientes secciones.
NGINX
Nginx - - . Nginx - .
GUNICORN
Gunicorn - Web Server Gateway Interface (WSGI), - Python.
WSGI - - Python .
, django .
EC2 AWS, aws.
EC2
New instance Ubuntu .
, , , .
8000 9000, . , , .
, 'connect' ( putty ).
sudo apt-get update
python , pip django
sudo apt install python sudo apt install python3-pip pip3 install django
, , , django.
cd /home/ubuntu/
mkdir Project
cd Project
mkdir ProjectName
cd ProjectName
.
/home/ubuntu/Project/ProjectName
GitHub
, , ec2.
( /home/ubuntu/Project/ProjectName/ )
git clone <repository-url>
, git pull
.
Settings.py .
settings.py .
Debug = False
ALLOWED_HOSTS
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) STATIC_ROOT = os.path.join(BASE_DIR, “static”)
, ( STATIC_ROOT).
manage.py makemigrations manage.py migrate manage.py collectstatic
Nginx
Nginx
sudo apt install nginx
/etc/nginx/sites-enabled/
, NGINX, .
sudo vi default
, .
Agregaremos proxy_pass http://0.0.0.0:9000 y proporcionaremos la ruta a nuestra carpeta estática agregando la ruta dentro del directorio / static / como se indicó anteriormente. Asegúrese de recopilar todos los archivos estáticos en una carpeta compartida ejecutando el comando
manage.py collectstatic
Ahora inicie el servidor nginx
sudo service nginx start #to start nginx
sudo service nginx stop #to stop nginx
sudo service nginx restart #to restart nginx
Instalación de Gunicorn
pip install gunicorn
Asegúrese de estar en la carpeta de su proyecto como: /home/ubuntu/Project
y ejecute el siguiente comando para iniciar gunicorn
gunicorn ProjectName.wsgi:application- -bind 0.0.0.0:9000
Ahora que hemos instalado y configurado nginx y gunicorn, se puede acceder a nuestra aplicación a través del DNS de la instancia ec2.