- Server s přístupem SSH
- Nginx webový server běžící na serveru (instalace je pokryta)
- Krajta
- Jste uživatelem sudo.
Nastavení serveru
Začněme nyní nastavovat prostředí serveru, které budeme používat k hostování našeho serveru. Tento výukový program používá server Ubuntu. Začněte aktualizací úložišť a instalací Python3 a Pip.
sudo apt-get aktualizacesudo apt-get upgrade -y
sudo apt-get nainstalovat python3 python3-pip -y
Dále musíme vytvořit adresář pro uložení projektu.
sudo mkdir / var / www / aplikacecd / var / www / aplikace
Změnit vlastnictví adresáře a oprávnění:
sudo chown -R www-data: www-data / var / www / aplikace /Dále nainstalujte balíčky pomocí apt (baňka a Gunicorn)
sudo apt-get install python3-flask python3-gunicornPojďme nyní pokračovat v inicializaci baňkové aplikace. Začněte vytvořením hlavní.py-drží aplikaci-a wsgi.py, který spustí aplikaci.
sudo touch hlavní.py wsgi.pyUpravit hlavní.py soubor a nastavte aplikaci Flask a všechny trasy. Vzhledem k tomu, že tento výukový program není průvodcem Flask, nastavíme základní trasu a zprávu o hello světě.
z baňky na dovoz baňkyaplikace = Baňka (__ name__)
@aplikace.trasa("/")
def home ():
vrátit se "
Nginx a Gunicorn
"Upravte wsgi.py soubor a přidejte kód pro import aplikace a spusťte jako:
z hlavní aplikace pro importpokud __name__ == "__main__":
aplikace.spustit (debug = True)
Nakonec vyzkoušejte, zda je funkční, voláním baňky jako:
$ baňka* Prostředí: výroba
UPOZORNĚNÍ: Toto je vývojový server. Nepoužívejte jej v produkčním nasazení.
Místo toho použijte produkční server WSGI.
* Režim ladění: vypnuto
* Spuštěno na http: // 127.0.0.1: 5000 / (Ukončete stisknutím CTRL + C)
Zkuste aplikaci otevřít na adrese http: // localhost: 5000.
Nastavení Gunicorn
Jakmile je naše aplikace úspěšně spuštěna, můžeme ji pomocí Gunicorn otestovat pomocí příkazů:
$ sudo gunicorn --workers 5 wsgi: aplikace[2021-03-19 09:19:34 +0000] [14047] [INFO] Spuštění gunicorn 20.0.4
[2021-03-19 09:19:34 +0000] [14047] [INFO] Poslech na: http: // 127.0.0.1: 8000 (14047)
[2021-03-19 09:19:34 +0000] [14047] [INFO] Používání pracovníka: synchronizace
[2021-03-19 09:19:34 +0000] [14049] [INFO] Zaváděcí pracovník s pid: 14049
[2021-03-19 09:19:34 +0000] [14050] [INFO] Zaváděcí pracovník s pid: 14050
[2021-03-19 09:19:34 +0000] [14051] [INFO] Zaváděcí pracovník s pid: 14051
[2021-03-19 09:19:34 +0000] [14052] [INFO] Zaváděcí pracovník s pid: 14052
[2021-03-19 09:19:35 +0000] [14053] [INFO] Zaváděcí pracovník s pid: 14053
Výše uvedené příkazy spouští bankovou aplikaci pomocí Gunicorn pomocí zadaného počtu pracovníků. Potom zavoláme soubor wsgi: app, což je soubor a instance aplikace, která se má spustit.
Jakmile máte aplikaci spuštěnou pomocí Gunicorn, stisknutím kombinace kláves CTRL + C zastavte server a nastavte Nginx.
K instalaci a spuštění Nginx použijte níže uvedené příkazy.
sudo apt-get install nginx -ysudo systemctl start nginx
sudo systemctl povolit nginx
Dalším krokem je úprava konfigurace Nginx v adresáři s povolenými weby a přidání bloku serveru. Zvažte následující konfiguraci. Změňte aplikaci na název vašeho projektu.
sudo nano / etc / nginx / sites-available / application.konfserver
poslouchat 80;
aplikace název_serveru;
přístupový_log / var / log / nginx / aplikace.přístup.protokol;
error_log / var / log / nginx / appliation.chyba.protokol;
místo /
zahrnout proxy_params;
proxy_pass http: // unix: / var / www / aplikace / aplikace.ponožka;
Chcete-li web povolit, pokračujte vytvořením odkazu na adresář s povoleným webem.
sudo ln -s / etc / nginx / sites-available / application.conf / etc / nginx / sites-enabled /Nyní restartujte službu Nginx jako:
sudo systemctl restart nginxDále musíme vytvořit soubor systémové jednotky, který bude aplikaci obsluhovat.
sudo nano / etc / systemd / system / application.servis[Jednotka]
Popis = aplikace.služba - aplikace Flask spuštěná s Gunicorn.
After = síť.cílová
[Servis]
Uživatel = www-data
Skupina = www-data
WorkingDirectory = / var / www / aplikace /
ExecStart = / usr / bin / gunicorn --workers 3 --bind unix: / var / www / aplikace.ponožka wsgi: aplikace
[Nainstalujte]
WantedBy = více uživatelů.cílová
Nakonec uložte soubor jednotky, poté démona povolte a znovu načtěte.
sudo systemctl restartujte aplikaci.servissudo systemctl daemon-reload
Nyní můžete přistupovat k aplikaci pomocí adresy IP nebo adresy uvedené v konfiguračním souboru nginx. Možná jej budete muset přidat do souboru hostitele.
curl http: // aplikaceHTTP / 1.1 200 v pořádku
Server: Werkzeug / 0.16.1 Python / 3.8.5)
Datum: Pá, 19. března 2021, 10:00:39 GMT
Typ obsahu: text / html
Délka obsahu: 25
Poslední úprava: Pá, 19. března 2021 09:22:47 GMT
Závěr
Tento tutoriál přešel o tom, jak nastavit aplikaci Python Flask a sloužit jí přes Nginx pomocí Gunicorn. Zvažte individuální dokumentaci, kde se dozvíte více o službách popsaných v tomto kurzu.