Konfigurowanie serwera
Zacznijmy teraz ustawić środowisko serwera, którego użyjemy do hostowania naszego serwera. Ten samouczek korzysta z serwera Ubuntu. Zacznij od aktualizacji repozytoriów i zainstalowania Python3 i PIP.
Sudo apt-get Aktualizacja
sudo apt -get aktualiza
sudo apt-get instal Python3 python3-pip -y
Następnie musimy utworzyć katalog do przechowywania projektu.
sudo mkdir/var/www/aplikacja
CD/var/www/aplikacja
Zmień własność i uprawnienia do katalogu:
sudo chown -r www-data: www-data/var/www/aplikacja/
Następnie zainstaluj pakiety za pomocą apt (kolba i gunikorn)
sudo apt-get instaluj Python3-Flash Python3-Gunicorn
Przejdźmy teraz do inicjowania aplikacji Flask. Zacznij od utworzenia głównego.Py-holds Application-and WSGI.PY, który uruchomi aplikację.
sudo touch main.PY WSGI.py
Edytuj główny.plik py i skonfiguruj aplikację kolb i wszystkie trasy. Ponieważ ten samouczek nie jest przewodnikiem kolb.
z kolby importowej kolby
App = Flask (__ name__)
@App.trasa("/")
def home ():
powrót "Nginx & Gunicorn
"
Edytuj WSGI.plik py i dodaj kod do importowania aplikacji i uruchom jako:
z głównej aplikacji importowej
Jeśli __name__ == "__main__":
App.RUN (debug = true)
Na koniec sprawdź, czy jest uruchomiony, wywołując kolbę jako:
$ folask bieg
* Środowisko: produkcja
OSTRZEŻENIE: To serwer rozwoju. Nie używaj go we wdrażaniu produkcyjnym.
Zamiast tego użyj produkcyjnego serwera WSGI.
* Tryb debugowania: wyłączony
* Uruchamianie na http: // 127.0.0.1: 5000/ (naciśnij Ctrl+C, aby rzucić)
Spróbuj uzyskać dostęp do aplikacji na http: // localhost: 5000.
Konfigurowanie gunikornu
Po pomyślnym uruchomieniu naszej aplikacji możemy użyć Gunicorn, aby przetestować aplikację za pomocą poleceń:
$ sudo gunicorn -Workers 5 WSGI: App
[2021-03-19 09:19:34 +0000] [14047] [Info] Start Gunicorn 20.0.4
[2021-03-19 09:19:34 +0000] [14047] [Info] Słuchanie na: http: // 127.0.0.1: 8000 (14047)
[2021-03-19 09:19:34 +0000] [14047] [Info] Korzystanie z pracownika: synchronizacja
[2021-03-19 09:19:34 +0000] [14049] [Info] Botowanie pracownika z PID: 14049
[2021-03-19 09:19:34 +0000] [14050] [Info] Botowanie pracownika z PID: 14050
[2021-03-19 09:19:34 +0000] [14051] [Info] Botowanie pracownika z PID: 14051
[2021-03-19 09:19:34 +0000] [14052] [Info] Botowanie pracownika z PID: 14052
[2021-03-19 09:19:35 +0000] [14053] [Info] Botowanie pracownika z PID: 14053
Powyższe polecenia uruchamiają aplikację kolby za pomocą gunikornu za pomocą określonej liczby pracowników. Następnie nazywamy plik WSGI: App, która jest plik i instancją aplikacji do uruchomienia.
Po uruchomieniu aplikacji za pomocą Gunicorn naciśnij Ctrl + C, aby zatrzymać serwer i skonfigurować Nginx.
Użyj poniższych poleceń, aby zainstalować i uruchom Nginx.
sudo apt -get instaluj nginx -y
sudo systemctl start nginx
sudo systemctl włącz Nginx
Następnym krokiem jest edycja konfiguracji Nginx w katalogu obsługującym witryny i dodanie bloku serwera. Rozważ następującą konfigurację. Zmień aplikację na nazwę swojego projektu.
sudo nano/etc/nginx/witryny-dostępny/aplikacji.conf
serwer
Posłuchaj 80;
aplikacja_nazowa server;
access_log/var/log/nginx/aplikacja.dostęp.dziennik;
error_log/var/log/nginx/appation.błąd.dziennik;
Lokalizacja /
obejmują proxy_params;
proxy_pass http: // unix:/var/www/aplikacja/aplikacja.skarpetka;
Kontynuuj, aby utworzyć link do katalogu z obsługą witryny, aby włączyć stronę internetową.
sudo ln -s/etc/nginx/witryny -dostępny/aplikacji.conf/etc/nginx/witryny-obsługujący/
Teraz uruchom ponownie usługę Nginx jako:
sudo systemctl restart nginx
Następnie musimy utworzyć plik jednostki SystemD, aby obsłużyć aplikację.
sudo nano/etc/systemd/system/aplikacja.praca
[Jednostka]
Opis = aplikacja.Usługa - aplikacja kolb.
Po = sieć.cel
[Praca]
User = www-data
Grupa = www-data
WorkingDirectory =/var/www/aplikacja/
ExecStart =/usr/bin/gunicorn -Workers 3 - -Bind Unix:/var/www/aplikacja.Sock WSGI: App
[Zainstalować]
Wantby = Multi-User.cel
Na koniec zapisz plik jednostki, a następnie włącz i ponownie załaduj demon.
Sudo SystemCtl Aplikacja restartu.praca
Sudo Systemctl Demon-Reload
Teraz możesz uzyskać dostęp do aplikacji za pomocą adresu IP lub adresu określonego w pliku konfiguracji Nginx. Może być konieczne dodanie go do pliku hosta.
curl http: // aplikacja
HTTP/1.1 200 OK
Serwer: Werkzeug/0.16.1 Python/3.8.5)
Data: pt, 19 marca 2021 10:00:39 GMT
Content-Type: Text/HTML
Długość zawartości: 25
Ostatni modyfikowany: pt, 19 marca 2021 09:22:47 GMT
Wniosek
Ten samouczek przeszedł, jak utworzyć aplikację Python Flask i podać ją nad Nginx za pomocą Gunicorn. Rozważ indywidualną dokumentację, aby dowiedzieć się więcej o usługach omawianych w tym samouczku.