Příprava linuxového serveru pro běh webové aplikace v jazyce Python
11. března 2020Technologií, které lze použít k vývoji webových aplikací je mnoho. Jednou z možností je i jazyk Python a framework Django. V tomto článku Vám popíši jak připravit linuxový server (VPS) pro běh webové aplikace, která je naprogramována v jazyce Python.
V tomto článku popíši instalaci linuxového serveru s distribucí Debian 9, na kterém zprovozním webovou aplikaci napsanou v jazyce Python. Nejdříve však bude potřeba zprovoznit web server, Python prostředí a propojit webserver s Python aplikací. Výsledkem bude server fyzický nebo VPS pro běh Python/Django aplikace. Samozřejmě aplikace bude napojena i na SQL databázi, ale to již není předmětem tohoto článku - tyto informace jsou v článku databází PostgreSQL a MySQL/MariaDB
Osnova
Postup instalace a konfigurace je následující:
- Instalace Pythonu
- Instalace a zprovoznění web serveru Nginx
- Zprovoznění prostředí pro Python
- Nastaveni Nginx
- Instalace Django
- Nastavení uwsgi
- Propojení Python aplikace a webserveru
Python
První co je potřeba zvolit je zdali aplikace budete potřebovat Python verze 3 nebo Python verze 2.
Instalace Pythonu verze 3:
apt-get install python3
Instalace Pythonu verze 2:
apt-get install python2
WSGI HTTP
WSGI je zkradka Web Server Gateway Interface. Je to konvence volání webových serverů a předávání požadavků na webové aplikace. Což podporuje i framework Django napsaný v programovacím jazyce Python. S tímto frameworkem vá ukáži jak zprovoznit Python webserver. Podrobnosti co je WSGI.
Krom frameworku Django existují i další frameworky napsané v jazyce Python například Flask.
Jako implementaci WSGI můžeme použít Gunicorn nebo UWSGI. Já někde používám UWSGI a někde Gunicorn.
Instalace uwsgi:
apt-get install uwsgiuwsgi ani nemusíme instalovat do systému, protože je možno použít verzi, kterou nainstalujeme spolu s knihovnami pro aplikaci.
Jak jsem již zmínil, jako web server použijeme Nginx. Proto pokud již máte nainstalován web server apache je dobré od něho systém vyčistit příkazem:
apt-get purge apache2
Web server Nginx nainstalujeme příkazem:
apt-get install nginx
Nainstalujeme virtualenv, což je nástroj pro vytvoření izolovaného prostředí pro běh Python aplikací. Instalaci provedeme příkazem:
apt-get virtualenv
Python web server obecný návod
Vytvoříme si prostředí pro webové aplikace v jazyce Python verze 2. Pro Python verze 3 je to téměř stejné.
Vytvoření adresáře, kde budeme mít prostředí a data projektu:
DIR=/var/www/test2/mysite mkdir $DIR cd $DIRZaložení izolovaného prostředí:
virtualenv --python=python2 --always-copy venvPřepnutí do izolovaného prostředí:
source venv/bin/activate
Veškeré knihovny pro aplikaci do izolovaného prostředí budeme instalovat pomoci technologie pip.
UWSGI nemusíme mít v systému, ale můžeme ho instalovat rovnou do tohoto izolovaného příkazem:
pip install uwsgi
Virtual enviroment Python 3
Založení izolovaného prostředí:
virtualenv --python=python3 --always-copy venvPřepnutí do prostředí:
source venv/bin/activate
Nastavení web serveru Nginx
Vytvoříme soubor /etc/nginx/sites-available/mysite_nginx.conf s obsahem:
# the upstream component nginx needs to connect to upstream django { # server unix:///path/to/your/mysite/mysite.sock; # for a file socket server 127.0.0.1:8001; # for a web port socket (we'll use this first) } # configuration of the server server { # the port your site will be served on listen 8000; # the domain name it will serve for server_name example.com; # substitute your machine's IP address or FQDN charset utf-8; # max upload size client_max_body_size 75M; # adjust to taste # Django media location /media { alias /path/to/your/mysite/media; # your Django project's media files - amend as required } location /static { alias /path/to/your/mysite/static; # your Django project's static files - amend as required } # Finally, send all non-media requests to the Django server. location / { uwsgi_pass django; include /path/to/your/mysite/uwsgi_params; # the uwsgi_params file you installed } }Napojení web serveru na aplikaci je dobré udělat přes socket. Také je potřeba nastavit automaticky po naběhnutí serveru startovalo uwsgi. Na starých systémech se jedná o init skripty, ale na dnešních systémech (rok 2019) použijete určitě startování pomocí systemd. Zde je návod jak nastavit, aby uwsgi startovalo pomocí sysmted. A nenapomeňte zapnout automatický start služby příkazem:
systemctl enable webapp.service
Výsledkem bude server s prostředím pro web aplikace napsaných ve frameworku Django.
Zapomeňte nastavit i zabezpečení webu pomocí certifikátu a šifrovaného spojení HTTPS
Kdo potřebuje Instalaci a konfiguraci linuxového serveru s Pythonem na míru neváhejte mě kontaktovat.
Video ukázka zprovoznění Python webserveru
Video ukázka s instalací a nastavením linuxového serveru pro běh Python aplikace s frameworkem Django. Použit je web server nginx a uwsgi.
- Osnova videa:
- Python instalace
- Web server Nginx
- Zprovoznění prostředí pro Python
- Nastaveni Nginx
- Instalace Django frameworku
- Nastavení uwsgi
- Propojení aplikace Pythonu a webserveru
Odkazy
Rozběhání Pythonu jako web aplikace:
Django a Nginx
nginx + Django + python 3
Seznam UWSGI parametrů:
uwsgi_params
Články na podobné téma
VMware vs Proxmox: porovnání výkonu
GitLab CI/CD: automatizace testů a nasazení aplikace
Migrace VPS z VMware na Proxmox
Změna licencování VMware
Provoz Microsoft SQL serveru na Linuxu
Zálohování: Proxmox backup server
Linux jako router a firewall
Jak náhrát docker image do Docker Registry
Linux: Logical Volume Management
Linuxový softwarový RAID
Provoz webové aplikace za proxy
Migrace mail schránek
Docker multistage build
Zálohování dat zapnutím počítače
Podman
Import Windows do virtualizace Proxmox
Docker a PHP mail
Virtualizace Proxmox
Docker a Cron
Lenovo ThinkPad X1 Carbon: zprovoznění LTE modemu EM7544
Yocto Project: Build vlastního operačního sytému pro embedded zařízení
Jak řešit špatný výkon sdílených souborů u Dockeru
Jak začít správně používat Docker
Instalace Linuxu na dedikovaný server HPE ProLiant DL320e
Jak provést zátěžový test webové aplikace
Proč používat filesystém JFS
Jak bootovat z 4TB disku s GTP pomocí UEFI
Jak nainstalovat operační systém Mageia Linux bez DVD mechaniky
Souborový systém Btrfs
Raspberry PI
Jak zprovoznit vzdálené přehrávání přes síť na televizi s DLNA
Upgrade Mandriva Linuxu za běhu
Poznámky ke GNU/Linux
WINE - spouštíme programy pro Windous pod Linuxem
Operační systém GNU/Linux
Odběr novinek
Pokud máte zájem dostávat příležitostně na email novinky.
Můžete se vyplněním emailu registrovat k
odběru novinek.
+