GNU/Linux >> Znalost Linux >  >> Panels >> Panels

Jak nasadit aplikaci Flask s Nginx a Gunicorn na Ubuntu 20.04

Flask je malý, lehký a mikro webový framework napsaný v Pythonu. Umožňuje vám snadno vyvíjet webové aplikace bez jakýchkoli nástrojů nebo knihoven. Touto webovou aplikací může být blog, wiki stránka, webové stránky, webová kalendářová aplikace nebo komerční webová stránka. Je jednoduchý, snadno se používá, snadno se učí a je vhodný pro začátečníky, protože nevyžaduje žádné závislosti.

V tomto tutoriálu vám ukážeme, jak nasadit aplikaci Flask s Gunicorn a Nginx na Ubuntu 20.04.

Předpoklady

  • Ubuntu 20.04 VPS s povoleným přístupem root nebo uživatel s právy sudo.

Přihlaste se a aktualizujte balíčky

Nejprve se budeme muset přihlásit na náš server pomocí SSH. Můžete to udělat zadáním tohoto příkazu:

ssh root@IP_Address -p Port_Number

Nezapomeňte nahradit root s vaším uživatelským jménem, ​​pokud nepoužíváte uživatele root. Změňte IP_Address a Port_Number podle IP adresy vašeho serveru a čísla portu SSH.

Jakmile se přihlásíte, měli byste aktualizovat všechny své balíčky na nejnovější dostupné verze.

apt-get update -y
apt-get upgrade -y

Jakmile budou všechny balíčky aktuální, restartujte server, aby se změny konfigurace projevily.

Instalovat požadované závislosti

Flask je aplikace založená na pythonu. Takže Python a další požadované závislosti musí být nainstalovány na vašem serveru. Pokud nejsou nainstalovány, můžete je všechny nainstalovat pomocí následujícího příkazu:

apt-get install python3 python3-pip python3-dev build-essential libssl-dev libffi-dev python3-setuptools -y

Jakmile jsou nainstalovány všechny závislosti, nainstalujte balíček virtuálního prostředí Python pomocí následujícího příkazu:

apt-get install python3-venv -y

Po instalaci můžete přejít k dalšímu kroku.

Instalovat webový server Nginx

V tomto tutoriálu použijeme Nginx jako reverzní proxy pro aplikaci Flask. Budete tedy muset na svůj server nainstalovat balíček webového serveru Nginx. Můžete jej nainstalovat pomocí následujícího příkazu:

apt-get install nginx -y

Jakmile je Nginx nainstalován, spusťte a povolte službu Nginx pomocí následujícího příkazu:

systemctl start nginx
systemctl enable nginx

Vytvoření virtuálního prostředí pro aplikaci Flask

Dále budete muset vytvořit virtuální prostředí pro aplikaci Flask.

Nejprve vytvořte adresář projektu pomocí následujícího příkazu:

mkdir ~/project

Dále změňte adresář na svůj projekt a vytvořte virtuální prostředí Pythonu pomocí následujícího příkazu:

cd ~/project
python3 -m venv venv

Dále aktivujte své prostředí pomocí následujícího příkazu:

source venv/bin/activate

Dále nainstalujte Gunicorn, Flask a další komponenty pomocí následujícího příkazu:

pip install wheel
pip install gunicorn flask

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Vytvořit aplikaci Flask

Dále budete muset vytvořit vzorovou aplikaci Flask pro váš projekt. Spusťte následující příkaz a vytvořte jej v adresáři projektu:

nano ~/project/flaskapp.py

Přidejte následující kódy:

from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
    return "Welcome to Flask Application!"
if __name__ == "__main__":
    app.run(host='0.0.0.0')

Uložte a zavřete soubor a poté ověřte aplikaci pomocí následujícího příkazu:

cd ~/project/
python3 flaskapp.py

Pokud je vše v pořádku, měli byste získat následující výstup:

 * Serving Flask app 'flaskapp' (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on all addresses.
   WARNING: This is a development server. Do not use it in a production deployment.
 * Running on http://69.28.84.227:5000/ (Press CTRL+C to quit)

Stiskněte CTRL+C pro ukončení aplikace.

Vytvořte vstupní bod WSGI pro Gunicorn

Dále budete muset vytvořit vstupní bod WSGI pro obsluhu vaší aplikace přes Gunicorn.

Spusťte následující příkaz a vytvořte jej:

nano ~/project/wsgi.py

Přidejte následující řádky:

from flaskapp import app
if __name__ == "__main__":
    app.run()

Uložte a zavřete soubor a poté ověřte, zda Gunicorn může aplikaci správně obsluhovat pomocí příkazu níže:

cd ~/project/
gunicorn --bind 0.0.0.0:5000 wsgi:app

Pokud je vše v pořádku, měli byste získat následující výstup:

[2021-12-23 10:37:15 +0000] [9352] [INFO] Starting gunicorn 20.1.0
[2021-12-23 10:37:15 +0000] [9352] [INFO] Listening at: http://0.0.0.0:5000 (9352)
[2021-12-23 10:37:15 +0000] [9352] [INFO] Using worker: sync
[2021-12-23 10:37:15 +0000] [9354] [INFO] Booting worker with pid: 9354

Stiskněte CTRL+C pro zastavení aplikace. Dále deaktivujte z virtuálního prostředí Pythonu pomocí následujícího příkazu:

deactivate

Vytvoření souboru služby Systemd pro aplikaci Flask

Dále budete muset vytvořit soubor systemd unit pro aplikaci Flask. Můžete jej vytvořit pomocí následujícího příkazu:

nano /etc/systemd/system/flask.service

Přidejte následující řádky:

[Unit]
Description=Gunicorn instance to serve Flask
After=network.target
[Service]
User=root
Group=www-data
WorkingDirectory=/root/project
Environment="PATH=/root/project/venv/bin"
ExecStart=/root/project/venv/bin/gunicorn --bind 0.0.0.0:5000 wsgi:app
[Install]
WantedBy=multi-user.target

Uložte a zavřete soubor a poté nastavte správné vlastnictví a oprávnění k projektu flask:

chown -R root:www-data /root/project
chmod -R 775 /root/project

Dále znovu načtěte démona systemd pomocí následujícího příkazu:

systemctl daemon-reload

Dále spusťte službu flask a povolte její spuštění při restartu systému:

systemctl start flask
systemctl enable flask

Dále ověřte stav baňky pomocí následujícího příkazu:

systemctl status flask

Výstup:

● flask.service - Gunicorn instance to serve Flask
     Loaded: loaded (/etc/systemd/system/flask.service; disabled; vendor preset: enabled)
     Active: active (running) since Thu 2021-12-23 10:38:26 UTC; 8s ago
   Main PID: 9376 (gunicorn)
      Tasks: 2 (limit: 2353)
     Memory: 27.8M
     CGroup: /system.slice/flask.service
             ├─9376 /root/project/venv/bin/python3 /root/project/venv/bin/gunicorn --bind 0.0.0.0:5000 wsgi:app
             └─9393 /root/project/venv/bin/python3 /root/project/venv/bin/gunicorn --bind 0.0.0.0:5000 wsgi:app

Dec 23 10:38:26 ubuntu2004 systemd[1]: Started Gunicorn instance to serve Flask.
Dec 23 10:38:26 ubuntu2004 gunicorn[9376]: [2021-12-23 10:38:26 +0000] [9376] [INFO] Starting gunicorn 20.1.0
Dec 23 10:38:26 ubuntu2004 gunicorn[9376]: [2021-12-23 10:38:26 +0000] [9376] [INFO] Listening at: http://0.0.0.0:5000 (9376)
Dec 23 10:38:26 ubuntu2004 gunicorn[9376]: [2021-12-23 10:38:26 +0000] [9376] [INFO] Using worker: sync
Dec 23 10:38:26 ubuntu2004 gunicorn[9393]: [2021-12-23 10:38:26 +0000] [9393] [INFO] Booting worker with pid: 9393

Nakonfigurujte Nginx jako reverzní proxy pro aplikaci Flask

Dále budete muset nakonfigurovat Nginx jako reverzní proxy pro obsluhu aplikace Flask přes port 80. Chcete-li tak učinit, vytvořte konfigurační soubor virtuálního hostitele Nginx:

nano /etc/nginx/conf.d/flask.conf

Přidejte následující řádky:

server {
    listen 80;
    server_name flask.example.com;
    location / {
        include proxy_params;
        proxy_pass  http://127.0.0.1:5000;
    }
}

Uložte a zavřete soubor a poté ověřte, zda Nginx neobsahuje nějakou chybu syntaxe:

nginx -t

Měli byste vidět následující výstup:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nakonec restartujte službu Nginx a použijte změny:

systemctl restart nginx

Přístup k aplikaci Flask

V tomto okamžiku je vaše aplikace Flask nainstalována, nakonfigurována a hostována pomocí proxy serveru Nginx. Nyní k němu můžete přistupovat pomocí adresy URL http://flask.example.com . Měli byste vidět následující stránku:

Gratulujeme! úspěšně jste nasadili aplikaci Flask s Gunicorn a Nginx na serveru Ubuntu 20.04.

Pokud jste však jedním z našich zákazníků Managed Ubuntu Hosting nebo pokud používáte jeden z našich plánů Managed VPS Hosting, nemusíte instalovat aplikaci Flask na svůj Ubuntu 20.04 VPS – jednoduše se zeptejte našich administrátorů, posaďte se a relaxovat. Naši administrátoři vám okamžitě nainstalují aplikaci Flask na Ubuntu 20.04 (nebo jakýkoli jiný OS, který u nás máte).

PS. Pokud se vám tento příspěvek o tom, jak nainstalovat aplikaci Flask na Ubuntu 20.04 VPS, líbil, sdílejte jej se svými přáteli na sociálních sítích pomocí tlačítek níže nebo jednoduše zanechte komentář v sekci komentářů. Děkuji.


Panels
  1. Jak nainstalovat Nginx pomocí Google PageSpeed ​​na Ubuntu 20.04

  2. Jak nainstalovat Nginx s PHP5 a MySQL na Ubuntu 11.10

  3. Jak nainstalovat PHP 7.4 s Nginx na Ubuntu 20.04

  1. Jak nasadit aplikace Node.js s pm2 a Nginx na Ubuntu

  2. Jak nasadit Modsecurity s Nginx na Ubuntu 20.04 LTS

  3. Jak nastavit Django s Postgres, Nginx a Gunicorn na Ubuntu 20.04

  1. Jak nainstalovat Django s PostgreSQL a Nginx na Ubuntu 16.04

  2. Jak nainstalovat GitBucket s Nginx na Ubuntu 18.04 LTS

  3. Jak nainstalovat Node.js s NVM a Nginx na Ubuntu 22.04