pengantar
Setelah kita selesai mengembangkan aplikasi web, harus dihosting agar publik bisa mengaksesnya dari mana saja. Kami akan melihat cara menerapkan dan menghosting aplikasi pada instans AWS EC2 menggunakan Nginx sebagai server web dan Gunicorn sebagai WSGI.
AWS EC2
Amazon Elastic Compute Cloud (Amazon EC2) adalah layanan web yang menyediakan daya komputasi yang dapat diskalakan di cloud. Kami menginstal dan menghosting aplikasi web kami pada instans EC2 setelah memilih AMI (OS) sesuai kebijaksanaan kami. Kami akan membicarakan lebih lanjut tentang ini di bagian berikut.
NGINX
Nginx adalah server web open source. Kami akan menggunakan Nginx untuk server halaman web kami sesuai kebutuhan.
GUNICORN
Gunicorn adalah implementasi sisi server dari Web Server Gateway Interface (WSGI), yang biasanya digunakan untuk menjalankan aplikasi web Python.
WSGI - Digunakan untuk meneruskan permintaan dari server web ke backend Python.
Kami tidak akan menggunakan server default yang disertakan dengan django dalam produksi.
Terapkan aplikasi
Kami akan meluncurkan instans EC2 di AWS dengan masuk ke konsol 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.