Jak używać nginx z kolbą.

Jak używać nginx z kolbą.
Python to świetny, łatwy do nauki i wszechmocny język programowania, a z frameworkami takimi jak Django i Flask, możemy go użyć do tworzenia pełnoprawnych aplikacji internetowych. Po utworzeniu aplikacji internetowej za pomocą bibliotek i frameworków, takich jak kolba, musimy hostować ją na serwerze i ujawnić publiczność. W tym samouczku omówiono, jak hostować aplikację internetową na serwerze z Nginx za pomocą Gunicorn. Zanim zaczniemy Flask i Gunicorn, upewnij się, że spełniasz następujące wymagania:
  • Serwer z dostępem do SSH
  • Nginx Web Server działający na serwerze (instalacja objęta)
  • Pyton
  • Jesteś użytkownikiem Sudo.

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.