Implantando aplicativos Django

Introdução

Depois de terminarmos de desenvolver o aplicativo da web, ele deve ser hospedado para que o público possa acessá-lo de qualquer lugar. Veremos como implantar e hospedar um aplicativo em uma instância AWS EC2 usando Nginx como servidor da web e Gunicorn como WSGI.





AWS EC2

Amazon Elastic Compute Cloud (Amazon EC2) é um serviço da web que fornece poder de computação escalonável na nuvem. Instalamos e hospedamos nossos aplicativos da web em uma instância EC2 após selecionar um AMI (SO) a nosso critério. Falaremos mais sobre isso nas seções a seguir.





NGINX

Nginx é um servidor da web de código aberto. Usaremos o Nginx para servir nossas páginas da web conforme necessário.





GUNICORN

Gunicorn é uma implementação do lado do servidor da Web Server Gateway Interface (WSGI), que é comumente usada para executar aplicativos da Web em Python.





WSGI - usado para encaminhar uma solicitação de um servidor da web para um back-end Python.





Não usaremos o servidor padrão que vem com o django na produção.





Implantar o aplicativo

Iniciaremos uma instância EC2 na AWS fazendo login no console do 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
      
      



, .





proxy_pass http://0.0.0.0:9000 , /static/, . , ,





manage.py collectstatic
      
      



nginx





sudo service nginx start             #to start nginx
sudo service nginx stop              #to stop nginx
sudo service nginx restart           #to restart nginx
      
      



Gunicorn

pip install gunicorn
      
      



, , : /home/ubuntu/Project



, , gunicorn





gunicorn ProjectName.wsgi:application- -bind 0.0.0.0:9000
      
      



, nginx gunicorn, DNS ec2.








All Articles