Django adalah kerangka kerja web gratis, sumber terbuka dan tingkat tinggi yang digunakan untuk mengembangkan Aplikasi Web Python. Muncul dengan seperangkat alat yang membantu Anda membangun aplikasi web yang aman dan skalabel. Tujuan utamanya adalah untuk memudahkan pembuatan aplikasi yang kompleks dan menangani struktur internal.
Dalam tutorial ini, kita akan belajar bagaimana menginstal Django dan mengkonfigurasi Nginx sebagai proxy terbalik untuk Django di CentOS 8.
Prasyarat
- Server yang menjalankan CentOS 8.
- Kata sandi root dikonfigurasi di server Anda.
Instal Paket yang Diperlukan
Django adalah kerangka kerja berbasis Python sehingga Anda perlu menginstal Python dan PIP di sistem Anda. Anda dapat menginstalnya dengan menjalankan perintah berikut:
dnf install python36 python3-pip -y
Setelah kedua paket diinstal, Anda dapat melanjutkan ke langkah berikutnya.
Instal Django
Anda dapat menginstal Django dengan perintah PIP seperti yang ditunjukkan di bawah ini:
pip3 menginstal Django
Setelah menginstal Django, Anda dapat memeriksa versi Django dengan perintah berikut:
django-admin --version
Anda akan melihat versi Django dalam keluaran berikut:
3.0.3
Buat Proyek Django
Pada titik ini, Django diinstal. Sekarang, waktunya membuat aplikasi Django baru.
Anda dapat membuat aplikasi Django baru menggunakan perintah django-admin di dalam direktori /opt seperti yang ditunjukkan di bawah ini:
cd /opt
django-admin startproject djangoproject
Setelah proyek django dibuat, ubah direktori menjadi djangoproject dan migrasikan perubahan dengan perintah berikut:
cd djangoproject
python3 manage.py migrasi
Anda akan mendapatkan output berikut:
Operasi yang harus dilakukan:Terapkan semua migrasi:admin, auth, tipe konten, sesiMenjalankan migrasi:Menerapkan tipe konten.0001_initial... OK Menerapkan auth.0001_initial... OK Menerapkan admin.0001_initial... OK Menerapkan admin.0002_logentry_remove_auto_add.. .OK Menerapkan admin.0003_logentry_add_action_flag_choices... OK Menerapkan contenttypes.0002_remove_content_type_name... OK Menerapkan auth.0002_alter_permission_name_max_length... OK Menerapkan auth.0003_alter_user_email_max_length... OK4_useralter_logt.000 Menerapkan... Menerapkan auth.0006_require_contenttypes_0002... OK Menerapkan auth.0007_alter_validators_add_error_messages... OK Menerapkan auth.0008_alter_user_username_max_length... OK Menerapkan auth.0009_alter_user_last_name_max_length... OK Menerapkan auth_update_length_length00 .0001_initial... Oke
Selanjutnya, Anda perlu membuat akun pengguna admin untuk mengelola proyek Django. Anda dapat membuatnya dengan perintah berikut:
python3 manage.py createsuperuser
Anda akan diminta untuk memberikan nama pengguna, email, dan kata sandi Anda. Anda dapat memberikannya sesuai pilihan Anda seperti yang ditunjukkan di bawah ini:
Nama pengguna (kosongkan untuk menggunakan 'root'):dadminAlamat email:[email protected]Sandi:Sandi (lagi):Pengguna super berhasil dibuat.
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Mulai Aplikasi Django
Secara default, aplikasi Django tidak dapat diakses dari host jarak jauh. Jadi Anda perlu mengizinkan Django untuk host eksternal. Anda dapat melakukannya dengan menambahkan IP server Anda di settings.py:
nano /opt/djangoproject/djangoproject/settings.py
Ubah baris berikut:
ALLOWED_HOSTS =['your-server-ip']
Simpan dan tutup file. Kemudian, jalankan aplikasi Django dengan perintah berikut:
cd /opt/djangoproject
python3 manage.py runserver 0.0.0.0:8000
Anda akan melihat output berikut:
Menonton perubahan file dengan StatReloaderMelakukan pemeriksaan sistem...Pemeriksaan sistem mengidentifikasi tidak ada masalah (0 dibungkam). 03 Maret 2020 - 02:31:19Django versi 3.0.3, menggunakan pengaturan 'djangoproject.settings'Memulai server pengembangan di http://0.0.0.0:8000/Keluar dari server dengan CONTROL-C.Aplikasi Django sekarang dimulai dan berjalan pada port 8000.
Pada titik ini, aplikasi Django sekarang dimulai dan berjalan pada port 8000. Sekarang Anda dapat melanjutkan ke langkah berikutnya.
Konfigurasi SELinux dan Firewall
Selanjutnya, Anda harus mengizinkan port 8000 dan 80 melalui firewalld. Anda dapat mengizinkannya dengan perintah berikut:
firewall-cmd --permanent --add-port=8000/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
Selanjutnya, konfigurasikan SELinux dengan perintah berikut:
setsebool httpd_can_network_connect di -P
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Akses Aplikasi Django
Anda dapat mengakses aplikasi Django dengan mengunjungi URL http://your-server-ip:8000. Anda akan melihat halaman berikut:
Anda juga dapat mengakses antarmuka admin Django menggunakan URL http://your-server-ip:8000/admin. Anda akan melihat halaman berikut:
Berikan nama pengguna, kata sandi admin Anda, dan klik Log di tombol. Anda akan melihat halaman berikut:
Instal Nginx dan Gunicorn
Di bagian ini, kita akan menginstal Gunicorn untuk membuat dan mengelola layanan Django, dan Nginx untuk melayani aplikasi Django.
Pertama, instal Nginx dengan perintah berikut:
dnf install nginx -y
Selanjutnya, instal Gunicorn menggunakan perintah PIP seperti gambar di bawah ini:
pip3 install gunicorn
Setelah kedua paket diinstal, mulai layanan Nginx dan aktifkan untuk memulai setelah sistem reboot dengan perintah berikut:
systemctl start nginx
systemctl aktifkan nginx
Selanjutnya, ubah kepemilikan direktori /opt/djangoproject menjadi Nginx seperti yang ditunjukkan di bawah ini:
chown -R nginx:nginx /opt/djangoproject
Buat File Layanan Systemd Untuk Django
Selanjutnya, buat file layanan systemd untuk mengelola layanan Django dengan perintah berikut:
nano /etc/systemd/system/django.service
Tambahkan baris berikut:
[Unit]Description=django daemonAfter=network.target[Service]User=nginxGroup=nginxWorkingDirectory=/opt/djangoprojectExecStart=/usr/local/bin/gunicorn --workers 3 --bind unix:/opt/djangoproject/ djangoproject.sock djangoproject.wsgi:application[Install]WantedBy=multi-user.target
Simpan dan tutup file kemudian muat ulang daemon systemd dengan perintah berikut:
systemctl daemon-reload
Selanjutnya, mulai layanan Django dan aktifkan untuk memulai setelah sistem di-boot ulang dengan perintah berikut:
systemctl start Django
systemctl aktifkan Django
Anda sekarang dapat memeriksa status layanan Django dengan perintah berikut:
systemctl status django
Anda akan melihat output berikut:
? django.service - django daemon Dimuat:dimuat (/etc/systemd/system/django.service; dinonaktifkan; preset vendor:dinonaktifkan) Aktif:aktif (berjalan) sejak Sen 2020-03-02 22:27:51 EST; 3 menit 32 detik yang lalu PID Utama:960 (Django) Tugas:4 (batas:25028) Memori:95.2M CGroup:/system.slice/django.service ??960 /usr/bin/python3.6 /usr/local/bin/ gunicorn --workers 3 --bind unix:/opt/djangoproject/djangoproject.sock djangoproject.wsgi:a> ??964 /usr/bin/python3.6 /usr/local/bin/gunicorn --workers 3 --bind unix:/opt/djangoproject/djangoproject.sock djangoproject.wsgi:a> ??965 /usr/bin/python3.6 /usr/local/bin/gunicorn --workers 3 --bind unix:/opt/djangoproject/djangoproject .sock djangoproject.wsgi:a> ??966 /usr/bin/python3.6 /usr/local/bin/gunicorn --workers 3 --bind unix:/opt/djangoproject/djangoproject.sock djangoproject.wsgi:a> 02 Mar 22:27:51 centos8 systemd[1]:Memulai django daemon.02 Mar 22:27:52 centos8 django[960]:[2020-03-02 22:27:52 -0500] [960] [INFO] Memulai django 20.0.4Mar 02 22:27:52 centos8 django[960]:[2020-03-02 22:27:52 -0500] [960] [INFO] Mendengarkan di:unix:/opt/djangoproject/djangoproject.sock (960)02 Maret 22:27:52 centos8 django[960]:[2020-03-02 22:27:52 -0500] [960] [INFO] Menggunakan pekerja:syncMar 02 22:27:52 centos8 django[960]:[2020-03-02 22 :27:52 -0500] [964] [INFO] Boot pekerja dengan pid:964Mar 02 22:27:52 centos8 django[960]:[2020-03-02 22:27:52 -0500] [965] [INFO ] Boot pekerja dengan pid:965Mar 02 22:27:52 centos8 django[960]:[2020-03-02 22:27:52 -0500] [966] [INFO] Boot pekerja dengan pid:966h pid:966Konfigurasi Nginx untuk Django
Selanjutnya, Anda perlu mengonfigurasi Nginx sebagai proxy terbalik untuk Django. Untuk melakukannya, buat file konfigurasi Nginx baru dengan perintah berikut:
nano /etc/nginx/conf.d/django.confTambahkan baris berikut:
server { dengarkan 80; server_name your-server-ip location =/favicon.ico { access_log off; log_not_ditemukan mati; } lokasi /static/ { root /opt/djangoproject; } lokasi / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Diteruskan-Untuk $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $skema; proxy_pass http://unix:/opt/djangoproject/djangoproject.sock; }}Simpan dan tutup file setelah Anda selesai. Kemudian, uji nginx untuk menemukan kesalahan sintaks dengan perintah berikut:
nginx -tJika semuanya baik-baik saja, Anda akan mendapatkan output berikut:
nginx:file konfigurasi /etc/nginx/nginx.conf sintaksnya oknginx:file konfigurasi /etc/nginx/nginx.conf tes berhasilSelanjutnya, restart layanan Nginx untuk menerapkan perubahan:
systemctl mulai nginxAnda juga dapat memverifikasi Nginx dengan perintah berikut:
systemctl status nginxAnda akan mendapatkan output berikut:
? nginx.service - HTTP nginx dan server proxy terbalik Dimuat:dimuat (/usr/lib/systemd/system/nginx.service; dinonaktifkan; preset vendor:dinonaktifkan) Aktif:aktif (berjalan) sejak Sen 2020-03-02 22:28:13 EST; 4 menit 14 detik yang lalu Proses:984 ExecStart=/usr/sbin/nginx (kode=keluar, status=0/SUCCESS) Proses:982 ExecStartPre=/usr/sbin/nginx -t (kode=keluar, status=0/SUCCESS) Proses :980 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (kode=keluar, status=0/SUCCESS) PID Utama:985 (nginx) Tugas:3 (batas:25028) Memori:5,5M CGroup:/system.slice/nginx.service ??985 nginx:master process /usr/sbin/nginx ??986 nginx:worker process ??987 nginx:worker processMar 02 22:28:12 centos8 systemd[1]:Memulai nginx HTTP dan server proxy terbalik...02 Mar 22:28:12 centos8 nginx[982]:nginx:file konfigurasi /etc/nginx/nginx.conf sintaksnya okMar 02 22:28:12 centos8 nginx[982]:nginx :file konfigurasi /etc/nginx/nginx.conf tes berhasil 02 Mar 22:28:13 centos8 systemd[1]:Memulai HTTP nginx dan server proxy terbalik.Anda sekarang dapat mengakses aplikasi Django Anda menggunakan URL http://your-server-ip.
Kesimpulan
Dalam panduan ini, kita belajar bagaimana menginstal Django pada CentOS 8. Kita juga belajar bagaimana menggunakan Gunicorn untuk membuat dan mengelola layanan Django dan mengkonfigurasi Nginx sebagai proxy terbalik untuk melayani aplikasi Django.
Cara Menginstal OrangeScrum di CentOS 8 Cara Menginstal Alat Manajemen Proyek Jira Agile di CentOS 8Cent OS