Bereitstellen von Django-Anwendungen

Einführung

Nachdem wir die Webanwendung entwickelt haben, muss sie gehostet werden, damit die Öffentlichkeit von überall darauf zugreifen kann. Wir werden sehen, wie eine Anwendung auf einer AWS EC2-Instanz mit Nginx als Webserver und Gunicorn als WSGI bereitgestellt und gehostet wird.





AWS EC2

Amazon Elastic Compute Cloud (Amazon EC2) ist ein Webdienst, der skalierbare Rechenleistung in der Cloud bereitstellt. Wir installieren und hosten unsere Webanwendungen auf einer EC2-Instanz, nachdem wir nach eigenem Ermessen ein AMI (OS) ausgewählt haben. Wir werden in den folgenden Abschnitten mehr darüber sprechen.





NGINX

Nginx ist ein Open Source Webserver. Wir werden Nginx verwenden, um unsere Webseiten nach Bedarf zu bedienen.





GUNICORN

Gunicorn ist eine serverseitige Implementierung des Web Server Gateway Interface (WSGI), das üblicherweise zum Ausführen von Python-Webanwendungen verwendet wird.





WSGI - Wird verwendet, um eine Anforderung von einem Webserver an ein Python-Backend weiterzuleiten.





Wir werden nicht den Standardserver verwenden, der mit Django in der Produktion geliefert wird.





Stellen Sie die Anwendung bereit

Wir werden eine EC2-Instanz unter AWS starten, indem wir uns bei der aws-Konsole anmelden.





  • 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