Nginx

Jak używać Nginx z Flask.

Jak używać Nginx z Flask.
Python to świetny, łatwy do nauczenia i wszechmocny język programowania, a dzięki frameworkom takim jak Django i Flask możemy go używać do tworzenia pełnoprawnych aplikacji internetowych. Po utworzeniu aplikacji internetowej przy użyciu bibliotek i frameworków, takich jak Flask, musimy umieścić ją na serwerze i udostępnić publicznie. Ten samouczek omawia, jak hostować swoją aplikację internetową na serwerze z uruchomionym Nginx przy użyciu Gunicorn. Zanim zaczniemy korzystać z Flask i Gunicorn, upewnij się, że spełniasz następujące wymagania:

Konfiguracja serwera

Zacznijmy teraz ustawiać środowisko serwerowe, którego będziemy używać do hostowania naszego serwera. Ten samouczek używa Ubuntu Server. Zacznij od aktualizacji repozytoriów i instalacji Python3 i Pip.

aktualizacja sudo apt-get
sudo apt-get upgrade -y
sudo apt-get zainstaluj python3 python3-pip -y

Następnie musimy stworzyć katalog do przechowywania projektu.

sudo mkdir /var/www/application
cd /var/www/aplikacja

Zmień właściciela i uprawnienia katalogu:

sudo chown -R www-data:www-data /var/www/application/

Następnie zainstaluj pakiety za pomocą apt (flask i Gunicorn)

sudo apt-get install python3-flask python3-gunicorn

Przejdźmy teraz do inicjalizacji aplikacji kolby. Zacznij od stworzenia głównego.py-przetrzymuje aplikację-i wsgi.py, który uruchomi aplikację.

sudo dotykowy główny.py wsgi.py

Edytuj główne.py i skonfiguruj aplikację Flask i wszystkie trasy. Ponieważ ten samouczek nie jest przewodnikiem po Flasku, skonfigurujemy podstawową trasę i wiadomość „Witaj świecie”.

z kolby importu Flask
aplikacja = Kolba(__nazwa__)
@aplikacja.trasa("/")
def home():
powrót "

Nginx i Gunicorn

"

Edytuj wsgi.py i dodaj kod do zaimportowania aplikacji i uruchom jako:

z głównej aplikacji do importu
if __name__ == "__main__":
aplikacja.uruchom(debug=prawda)

Na koniec sprawdź, czy działa, wywołując flask jako:

$ kolba uruchomiona
* Środowisko: produkcja
OSTRZEŻENIE: To jest serwer programistyczny. Nie używaj go we wdrożeniu produkcyjnym.
Zamiast tego użyj produkcyjnego serwera WSGI.
* Tryb debugowania: wyłączony
* Działa na http://127.0.0.1:5000/ (Naciśnij CTRL+C, aby zakończyć)

Spróbuj uzyskać dostęp do aplikacji na http://localhost:5000.

Konfigurowanie Gunicorn

Po pomyślnym uruchomieniu naszej aplikacji możemy użyć Gunicorn do przetestowania aplikacji za pomocą poleceń:

$ sudo gunicorn --workers 5 wsgi:app
[2021-03-19 09:19:34 +0000] [14047] [INFO] Uruchamianie 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] Bootworker z pid: 14049
[2021-03-19 09:19:34 +0000] [14050] [INFO] Bootworker z pid: 14050
[2021-03-19 09:19:34 +0000] [14051] [INFO] Bootowanie workera z pid: 14051
[2021-03-19 09:19:34 +0000] [14052] [INFO] Bootowanie workera z pid: 14052
[2021-03-19 09:19:35 +0000] [14053] [INFO] Bootworker z pid: 14053

Powyższe polecenia uruchamiają aplikację kolby za pomocą Gunicorn przy użyciu określonej liczby pracowników. Następnie wywołujemy plik wsgi:app, który jest plikiem 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 uruchomić Nginx.

sudo apt-get zainstaluj nginx -y
sudo systemctl uruchom nginx
sudo systemctl włącz nginx

Następnym krokiem jest edycja konfiguracji Nginx w katalogu z obsługą witryn i dodanie bloku serwera. Rozważ następującą konfigurację. Zmień aplikację na nazwę swojego projektu.

sudo nano /etc/nginx/sites-available/aplikacja.konf
serwer
posłuchaj 80;
aplikacja nazwa_serwera;
access_log /var/log/nginx/application.dostęp.log;
dziennik_błędów /var/log/nginx/aplikacja.błąd.log;
Lokalizacja /
dołącz proxy_params;
proxy_pass http://unix:/var/www/application/application.skarpetka;

Przejdź do tworzenia linku do katalogu obsługującego witrynę, aby włączyć witrynę.

sudo ln -s /etc/nginx/sites-available/application.conf /etc/nginx/sites-enabled/

Teraz uruchom ponownie usługę Nginx jako:

sudo systemctl uruchom ponownie nginx

Następnie musimy utworzyć plik jednostki systemd do obsługi aplikacji.

sudo nano /etc/systemd/system/aplikacja.usługa
[Jednostka]
Opis=aplikacja.usługa - Aplikacja Flask uruchamiana z Gunicorn.
Po=sieć.cel
[Usługa]
Użytkownik=www-dane
Grupa=www-dane
Katalog Roboczy=/var/www/application/
ExecStart=/usr/bin/gunicorn --workers 3 --bind unix:/var/www/application.skarpety wsgi: aplikacja
[Zainstalować]
Poszukiwany przez = wielu użytkowników.cel

Na koniec zapisz plik jednostki, a następnie włącz i ponownie załaduj demona.

sudo systemctl restart aplikacji.usługa
sudo systemctl demon-reload

Teraz możesz uzyskać dostęp do aplikacji za pomocą adresu IP lub adresu określonego w pliku konfiguracyjnym 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: piątek, 19 marca 2021 10:00:39 GMT
Content-Type: text/html
Długość treści: 25
Ostatnia modyfikacja: piątek, 19 marca 2021 09:22:47 GMT

Wniosek

W tym samouczku omówiono, jak skonfigurować aplikację Python Flask i udostępniać ją przez Nginx za pomocą Gunicorn. Rozważ indywidualną dokumentację, aby dowiedzieć się więcej o usługach omawianych w tym samouczku.

Gry Jak zainstalować League Of Legends na Ubuntu 14.04
Jak zainstalować League Of Legends na Ubuntu 14.04
Jeśli jesteś fanem League of Legends, to jest okazja do przetestowania League of Legends. Pamiętaj, że LOL jest obsługiwany w PlayOnLinux, jeśli jeste...
Gry Zainstaluj najnowszą grę strategiczną OpenRA na Ubuntu Linux
Zainstaluj najnowszą grę strategiczną OpenRA na Ubuntu Linux
OpenRA to darmowy silnik gier strategicznych czasu rzeczywistego, który odtwarza wczesne gry Westwood, takie jak klasyczny Command & Conquer: Red Aler...
Gry Zainstaluj najnowszy emulator Dolphin dla Gamecube i Wii w systemie Linux
Zainstaluj najnowszy emulator Dolphin dla Gamecube i Wii w systemie Linux
Emulator Dolphin pozwala grać w wybrane gry Gamecube i Wii na komputerach osobistych z systemem Linux (PC). Będąc ogólnodostępnym emulatorem gier o o...