- Un server cu acces SSH
- Server web Nginx care rulează pe server (instalare acoperită)
- Piton
- Sunteți un utilizator sudo.
Configurarea serverului
Să începem acum să setăm mediul serverului pe care îl vom folosi pentru a ne găzdui serverul. Acest tutorial utilizează serverul Ubuntu. Începeți prin actualizarea depozitelor și instalarea Python3 și Pip.
sudo apt-get updatesudo apt-get upgrade -y
sudo apt-get install python3 python3-pip -y
Apoi, trebuie să creăm un director pentru a stoca proiectul.
sudo mkdir / var / www / applicationcd / var / www / application
Schimbați proprietatea și permisiunile directorului:
sudo chown -R www-data: www-data / var / www / application /Apoi, instalați pachetele folosind apt (flask și Gunicorn)
sudo apt-get install python3-flask python3-gunicornSă continuăm acum să inițializăm o aplicație balon. Începeți prin crearea principalului.py-deține aplicația-și wsgi.py, care va face ca aplicația să ruleze.
sudo atingeți principal.py wsgi.pyEditați principalul.py și configurați aplicația Flask și toate rutele. Deoarece acest tutorial nu este un ghid Flask, vom configura un traseu de bază și un mesaj Hello World.
din flacon import Flaconapp = Flask (__ nume__)
@app.traseu("/")
def home ():
întoarcere "
Nginx și Gunicorn
"Editați wsgi.py și adăugați codul pentru a importa aplicația și rulați ca:
din aplicația principală de importdacă __name__ == "__main__":
aplicație.rulați (depanare = Adevărat)
În cele din urmă, testați dacă funcționează apelând balonul ca:
$ flask run* Mediu: producție
AVERTISMENT: Acesta este un server de dezvoltare. Nu-l utilizați într-o implementare de producție.
Folosiți în schimb un server WSGI de producție.
* Mod de depanare: dezactivat
* Se rulează pe http: // 127.0.0.1: 5000 / (Apăsați CTRL + C pentru a ieși)
Încercați să accesați aplicația de pe http: // localhost: 5000.
Configurarea Gunicornului
Odată ce aplicația noastră rulează cu succes, putem folosi Gunicorn pentru a testa aplicația folosind comenzile:
$ sudo gunicorn - workers 5 wsgi: app[2021-03-19 09:19:34 +0000] [14047] [INFO] Pornirea gunicornului 20.0.4
[2021-03-19 09:19:34 +0000] [14047] [INFO] Ascultând la: http: // 127.0.0.1: 8000 (14047)
[2021-03-19 09:19:34 +0000] [14047] [INFO] Utilizarea lucrătorului: sincronizare
[2021-03-19 09:19:34 +0000] [14049] [INFO] Lucrător de pornire cu pid: 14049
[2021-03-19 09:19:34 +0000] [14050] [INFO] Lucrător de pornire cu pid: 14050
[2021-03-19 09:19:34 +0000] [14051] [INFO] Lucrător de pornire cu pid: 14051
[2021-03-19 09:19:34 +0000] [14052] [INFO] Lucrător de pornire cu pid: 14052
[2021-03-19 09:19:35 +0000] [14053] [INFO] Lucrător de pornire cu pid: 14053
Comenzile de mai sus rulează aplicația balon folosind Gunicorn folosind numărul specificat de lucrători. Apelăm apoi la fișierul wsgi: app, care este fișierul și instanța aplicației de rulat.
Odată ce aplicația rulează folosind Gunicorn, apăsați CTRL + C pentru a opri serverul și a configura Nginx.
Utilizați comenzile de mai jos pentru a instala și a rula Nginx.
sudo apt-get install nginx -ysudo systemctl pornește nginx
sudo systemctl activează nginx
Următorul pas este să editați configurația Nginx în directorul activat pentru site-uri și să adăugați blocul de server. Luați în considerare următoarea configurație. Schimbați aplicația cu numele proiectului dvs.
sudo nano / etc / nginx / sites-available / application.confServer
ascultă 80;
cerere server_name;
access_log / var / log / nginx / application.acces.Buturuga;
error_log / var / log / nginx / appliation.eroare.Buturuga;
Locație /
include proxy_params;
proxy_pass http: // unix: / var / www / application / application.ciorap;
Continuați să creați un link către directorul activat pentru site pentru a activa site-ul web.
sudo ln -s / etc / nginx / sites-available / application.conf / etc / nginx / sites-enabled /Acum reporniți serviciul Nginx ca:
sudo systemctl reporniți nginxApoi, trebuie să creăm un fișier unitate systemd pentru a servi aplicația.
sudo nano / etc / systemd / system / application.serviciu[Unitate]
Descriere = aplicație.service - O aplicație Flask rulată cu Gunicorn.
După = rețea.ţintă
[Serviciu]
Utilizator = www-data
Group = www-data
WorkingDirectory = / var / www / application /
ExecStart = / usr / bin / gunicorn --workers 3 --bind unix: / var / www / application.sock wsgi: aplicație
[Instalare]
WantedBy = multi-utilizator.ţintă
În cele din urmă, salvați fișierul unității, apoi activați și reîncărcați daemonul.
sudo systemctl reporniți aplicația.serviciusudo systemctl daemon-reload
Acum puteți accesa aplicația utilizând adresa IP sau adresa specificată în fișierul de configurare nginx. Poate fi necesar să îl adăugați la fișierul gazdei.
curl http: // applicationHTTP / 1.1 200 OK
Server: Werkzeug / 0.16.1 Python / 3.8.5)
Data: vineri, 19 martie 2021 10:00:39 GMT
Tip conținut: text / html
Lungime conținut: 25
Ultima modificare: vineri, 19 martie 2021 09:22:47 GMT
Concluzie
Acest tutorial a descris cum să configurați o aplicație Python Flask și să o serviți pe Nginx folosind Gunicorn. Luați în considerare documentația individuală pentru a afla mai multe despre serviciile discutate în acest tutorial.