
Django je bezplatný a open source webový rámec na vysoké úrovni používaný k vývoji webových aplikací Python. Django přichází se sadou nástrojů, které vám pomohou vytvářet bezpečné a škálovatelné webové aplikace. Jeho hlavním účelem je usnadnit tvorbu složitých aplikací a udržovat vnitřní strukturu.
V tomto tutoriálu se naučíme, jak nainstalovat Django a nakonfigurovat Nginx jako reverzní proxy pro Django na Rocky Linux 8 a CentOS 8.
Předpoklad
- Server s operačním systémem CentOS 8.
- Přihlaste se jako uživatel root nebo uživatel s právy sudo
Instalujte požadované balíčky
Django je framework založený na Pythonu, takže musíte do systému nainstalovat Python a PIP. Chcete-li jej nainstalovat, spusťte následující příkaz:
dnf install python36 python3-pip -y
Jakmile jsou oba balíčky nainstalovány, přejděte k dalšímu kroku.
Instalovat Django na Rocky Linux 8
Django můžete nainstalovat pomocí příkazu PIP, jak je znázorněno níže:
pip3 install Django
Po instalaci Django zkontrolujte verzi Django pomocí následujícího příkazu:
django-admin --version
Verzi Django uvidíte v následujícím výstupu:
3.0.3
v době psaní tohoto článku je verze Django verze 3.0.3
Vytvořit projekt Django
V tomto okamžiku byl Django úspěšně nainstalován. Nyní je čas vytvořit aplikaci Django.
Aplikace Django můžete vytvořit pomocí příkazu django-admin v adresáři /opt
jak je uvedeno níže:
cd /opt
django-admin startproject djangoproject
Jakmile je projekt django vytvořen, změňte adresář na djangoproject
a migrujte změny pomocí následujícího příkazu:
cd djangoproject
python3 manage.py migrate
Získáte následující výstup:
Operace k provedení:Použít všechny migrace:admin, auth, contenttypes, sessionsSpuštěné migrace:Použití contenttypes.0001_initial... OK Použití auth.0001_initial... OK Použití admin.0001_initial... OK Použití admin.0002_logentry_remove_auto_add OK Aplikace Admin.0003_logentry_add_action_flag_choices ... Ok aplikaci ContentTypes.0002_Remove_Content_Type_name ... OK Aplikující autor.0002_Alter_Permission_NAME OK AUTKING_ONTTORET_ONTY AUTKING_ONTION OK OK AUTIONS AUTHONT_ONTTON OK AUTING OK AUTHING_ONTTON OK OK AUTHING OK. Aplikace Auth.0006_Require_ContentTypes_0002 ... OK Aplikace Auth.0007_Alter_Validators_Add_error_Messages ... OK Aplikace Auth.0008_Alter_User_Username_Max_length ... OK AUTKING AUTHING AUTH. Auth. .0001_initial... OK
Dále musíte vytvořit uživatelský účet správce pro správu vašeho projektu Django pomocí následujícího příkazu:
python3 manage.py createsuperuser
Budete požádáni o zadání uživatelského jména, e-mailu a hesla. Můžete jej poskytnout podle svého výběru, jak je uvedeno níže:
Uživatelské jméno (nechte prázdné, chcete-li použít 'root'):dadminE-mailová adresa:[e-mail chráněný] Heslo:Heslo (znovu):Superuser úspěšně vytvořen.
Po dokončení můžete přejít k dalšímu kroku.
Spusťte aplikaci Django
Ve výchozím nastavení lze k aplikacím Django přistupovat pouze z localhost, aby se Django připojilo k internetu, musíte povolit Django pro externí hostitele. Můžete to udělat přidáním IP vašeho serveru do IP settings.py:
nano /opt/djangoproject/djangoproject/settings.py
Změňte následující řádek:
ALLOWED_HOSTS =['ip_server_Anda']
Uložte a zavřete soubor. Poté spusťte aplikaci Django pomocí následujícího příkazu:
cd /opt/djangoproject
python3 manage.py runserver 0.0.0.0:8000
Uvidíte následující výstup:
Sledování změn souborů pomocí StatReloader Provádím systémové kontroly...Kontrola systému nezjistila žádné problémy (0 umlčeno). http://0.0.0.0:8000/Ukončit server pomocí CONTROL-C. Aplikace Django je nyní spuštěna a běží na portu 8000.
V tuto chvíli je aplikace Django nyní spuštěna a spuštěna na portu 8000. Nyní můžete přejít k dalšímu kroku.
Nakonfigurujte SELinux a Firewall na Rocky Linux 8
Dále musíte povolit porty 8000 a 80 přes firewall. Můžete je povolit pomocí následujícího příkazu:
firewall-cmd --permanent --add-port=8000/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
Dále nakonfigurujte SELinux pomocí následujícího příkazu:
setsebool httpd_can_network_connect on -P
Po dokončení můžete přejít k dalšímu kroku.
Přístup k aplikacím Django
K aplikaci Django se dostanete na adrese URL http://ip-vasho-serveru:8000. Zobrazí se následující stránka:

Můžete také přistupovat k administrátorskému rozhraní Django pomocí adresy URL http://server-ip:8000/admin. Zobrazí se následující stránka:

Zadejte uživatelské jméno, heslo správce a klikněte na tlačítko Přihlásit se v . Zobrazí se následující stránka:

Nainstalujte Nginx a Gunicorn na Rocky Linux 8
V této sekci nainstalujeme Gunicorn pro vytváření a správu služeb Django a Nginx pro poskytování aplikací Django.
Nejprve nainstalujte Nginx pomocí následujícího příkazu:
dnf install nginx -y
Dále nainstalujte Gunicorn pomocí příkazu PIP, jak je znázorněno níže:
pip3 install gunicorn
Jakmile jsou oba balíčky nainstalovány, spusťte službu Nginx a povolte její spuštění po restartu systému pomocí následujícího příkazu:
systemctl start nginx
systemctl enable nginx
Dále změňte vlastnictví adresáře /opt/djangoproject
na Nginx, jak je uvedeno níže:
chown -R nginx:nginx /opt/djangoproject
Vytvořit službu File Systemd pro Django
Dále vytvořte soubor služby systemd pro správu služeb Django pomocí následujícího příkazu:
nano /etc/systemd/system/django.service
Přidejte následující řádek:
[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
Uložte a zavřete soubor a poté znovu načtěte démona systemd pomocí následujícího příkazu:
systemctl daemon-reload
Dále spusťte službu Django a povolte její spuštění po restartu systému pomocí následujícího příkazu:
systemctl start django
systemctl enable django
Nyní můžete zkontrolovat stav služby Django pomocí následujícího příkazu:
systemctl status django
Uvidíte následující výstup:
? django.service - démon django Načteno:načteno (/etc/systemd/system/django.service; zakázáno; přednastaveno dodavatelem:zakázáno) Aktivní:aktivní (běží) od Po 2020-03-02 22:27:51 UTC; před 3min 32s Hlavní PID:960 (django) Úkoly:4 (limit:25028) Paměť: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> 2. března 22:27:51 centos8 systemd[1]:Spuštěn démon django. 2. března 22:27:52 centos8 django[960]:[2020-03-02 22:27:52 -0500] [960] [INFO] Starting django 20.0.4Mar 02 22:27:52 centos8 django[960]:[2020-03-02 22:27:52 -0500] [960] [INFO] Poslech na:unix:/opt/djangoproject/djangoproject. (960) 2. března 22:27:52 centos8 django[960]:[2020-03-02 22:27:52 -0500] [960] [INFO] Pomocí pracovníka:syncMar 02 22:27:52 centos8 django[960]:[2020-03-02 22 :27:52 -0500] [964] [INFO] Bootovací pracovník s PID:964Mar 02 22:27:52 centos8 django[960]:[2020-03-02 22:27:52 -0500] [965] [INFO ] Zaváděcí pracovník s pid:965Mar 02 22:27:52 centos8 django[960]:[2020-03-02 22:27:52 -0500] [966] [INFO] Zaváděcí pracovník s pid:966hNakonfigurujte Nginx pro Django
Dále nakonfigurujte Nginx jako reverzní proxy pro Django. Chcete-li tak učinit, vytvořte nový konfigurační soubor Nginx pomocí následujícího příkazu:
nano /etc/nginx/conf.d/django.conf
Přidejte následující řádek:
server { poslouchat 80; název_serveru umístění IP vašeho-serveru =https://cdn.linuxid.net/favicon.ico?x87109 { access_log off; log_not_found off; } umístění /static/ { root /opt/djangoproject; } umístění / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $schéma; proxy_pass http://unix:/opt/djangoproject/djangoproject.sock; }}Až budete hotovi, uložte a zavřete soubor. Poté otestujte nginx na případné syntaktické chyby pomocí následujícího příkazu:
nginx -t
Pokud nejsou žádné chyby, zobrazí se následující výstup:
nginx:syntaxe konfiguračního souboru /etc/nginx/nginx.conf je oknginx:konfigurační soubor /etc/nginx/nginx.conf test je úspěšnýPoté restartujte službu Nginx, aby se změny implementovaly:
systemctl start nginx
Nginx můžete také ověřit pomocí následujícího příkazu:
systemctl status nginx
Získáte následující výstup:
? nginx.service – HTTP a reverzní proxy server nginx Načteno:načteno (/usr/lib/systemd/system/nginx.service; zakázáno; přednastaveno dodavatelem:zakázáno) Aktivní:aktivní (běží) od 22. 3. 2020:28:13 EST; Před 4min 14s Proces:984 ExecStart=/usr/sbin/nginx (kód=ukončeno, stav=0/ÚSPĚCH) Proces:982 ExecStartPre=/usr/sbin/nginx -t (kód=ukončeno, stav=0/ÚSPĚCH) Proces :980 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (kód=ukončeno, stav=0/ÚSPĚCH) Hlavní PID:985 (nginx) Úkoly:3 (limit:25028) Paměť:5,5M CGroup:/system.slice/nginx.service 985 nginx:hlavní proces /usr/sbin/nginx 986 nginx:pracovní proces 987 nginx:pracovní proces 2. března 22:28:12 centos8 systemd[1]:Spuštění nginx HTTP a reverzní proxy server...březen 02 22:28:12 centos8 nginx[982]:nginx:syntaxe konfiguračního souboru /etc/nginx/nginx.conf je v pořádku 2. březen 22:28:12 centos8 nginx[982]:nginx :konfigurační soubor /etc/nginx/nginx.conf test je úspěšný 2. března 22:28:13 centos8 systemd[1]:Spuštěn nginx HTTP a reverzní proxy server.Nyní můžete přistupovat k aplikacím Django pomocí adresy URL http://IP_adresa_serveru.
Závěr
V této příručce jsme se naučili, jak nainstalovat Django na Rocky Linux 8 a CentOS 8. Také jsme se naučili používat Gunicorn k vytváření a správě služeb Django a konfiguraci Nginx jako reverzního proxy pro obsluhu aplikací Django.
Jak nainstalovat Linux Kernel 5.13 na Rocky Linux 8 / AlmaLinux 8 / CentOS 8 Jak nainstalovat a nakonfigurovat Mono na Rocky Linux 8 a CentOS 8Cent OS