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.