Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu: Skills Rozpocznij
Sekcja
Administracja Linux Serwery Wirtualne

Jak zainstalować Flask na hostingu: Kompletny przewodnik krok po kroku

Flask to lekka, elastyczna platforma webowa dla Pythona, która umożliwia deweloperom szybkie i efektywne tworzenie i wdrażanie aplikacji internetowych. Niezależnie od tego, czy uruchamiasz projekt osobisty, REST API czy pełnowymiarową usługę sieciową, wiedza na temat prawidłowej instalacji i konfiguracji Flask w środowisku hostingowym jest umiejętnością niezbędną. Ten kompleksowy przewodnik przeprowadzi Cię przez każdy krok — od konfiguracji serwera po wdrożenie produkcyjne z Gunicorn i Nginx.

1. Wymagania wstępne

Przed przystąpieniem do procesu instalacji upewnij się, że masz następujące elementy:

Środowisko hostingowe obsługujące Python

Potrzebujesz usługi hostingowej, która daje Ci pełną kontrolę nad środowiskiem serwera. Plany hostingu współdzielonego często ograniczają wykonywanie Pythona, dlatego do wdrożeń Flask zalecane jest Hosting VPS lub Serwer dedykowany. Te opcje dają Ci dostęp root, pełne możliwości zarządzania pakietami i elastyczność do konfiguracji stosu dokładnie tak, jak potrzebujesz.

Dostęp SSH

Będziesz potrzebować dostępu SSH, aby połączyć się ze zdalnym serwerem i wykonywać polecenia. Większość środowisk VPS i serwerów dedykowanych opartych na Linux obsługuje to od razu.

Zainstalowany Python

Zalecana jest wersja Python 3.8 lub wyższa. Większość nowoczesnych środowisk hostingowych ma Python wstępnie zainstalowany, ale zweryfikujemy to podczas konfiguracji.

Opcjonalnie: Nazwa domeny

Jeśli planujesz udostępnić swoją aplikację Flask publicznie za pośrednictwem domeny zamiast surowego adresu IP, rozważ zarejestrowanie jej za pośrednictwem Rejestracji domeny przed rozpoczęciem.

2. Łączenie się z serwerem za pośrednictwem SSH

Otwórz terminal (Linux/macOS) lub klienta SSH, takiego jak PuTTY (Windows), i połącz się z serwerem:

ssh username@your_server_ip

Zastąp username rzeczywistą nazwą użytkownika serwera i your_server_ip publicznym adresem IP serwera.

Po połączeniu sprawdź, czy Python 3 jest dostępny:

python3 --version

Powinieneś zobaczyć dane wyjściowe podobne do Python 3.10.x. Jeśli Python nie jest zainstalowany, przejdź do jego instalacji:

sudo apt install python3

3. Aktualizacja serwera

Przed zainstalowaniem jakichkolwiek pakietów najlepiej jest zaktualizować listę pakietów systemu i uaktualnić istniejące pakiety do ich najnowszych wersji:

sudo apt update
sudo apt upgrade -y

Zapewnia to, że pracujesz z najbardziej stabilnymi i bezpiecznymi wersjami wszystkich zależności.

4. Instalacja Flask

Krok 1: Instalacja pip

pip to menedżer pakietów Python i jest wymagany do instalacji Flask i innych bibliotek Python. Zainstaluj go, jeśli nie jest jeszcze obecny:

sudo apt install python3-pip -y

Zweryfikuj instalację:

pip3 --version

Krok 2: Utwórz katalog projektu

Zorganizuj swoją aplikację, tworząc dedykowany katalog:

mkdir my_flaskapp
cd my_flaskapp

Krok 3: Skonfiguruj wirtualne środowisko

Użycie wirtualnego środowiska izoluje zależności projektu od globalnej instalacji Python, zapobiegając konfliktom wersji i utrzymując serwer czystym:

sudo apt install python3-venv -y
python3 -m venv venv

Aktywuj wirtualne środowisko:

source venv/bin/activate

Twój wiersz polecenia terminala zmieni się, aby wskazać, że wirtualne środowisko jest aktywne, zazwyczaj pokazując (venv) na początku linii.

Krok 4: Instalacja Flask

Po aktywowaniu wirtualnego środowiska zainstaluj Flask za pomocą pip:

pip install Flask

Potwierdź instalację:

flask --version

Powinieneś zobaczyć wersję Flask wraz z wersjami Python i Werkzeug.

5. Tworzenie prostej aplikacji Flask

Krok 1: Utwórz plik aplikacji

Utwórz nowy plik o nazwie app.py w katalogu projektu:

nano app.py

Krok 2: Napisz swoją aplikację Flask

Dodaj następujący minimalny kod aplikacji Flask:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "Hello, World! Flask is running successfully."

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

Wyjaśnienie kodu:

  • Flask(__name__) — Tworzy nową instancję aplikacji Flask.
  • @app.route('/') — Definiuje trasę URL dla strony głównej.
  • app.run(host='0.0.0.0', port=5000) — Uruchamia serwer deweloperski, czyniąc go dostępnym na wszystkich interfejsach sieciowych na porcie 5000.

Krok 3: Zapisz i wyjdź

Naciśnij CTRL + X, następnie Y i naciśnij Enter aby zapisać plik i wyjść z edytora nano.

6. Uruchamianie aplikacji Flask w trybie programowania

Uruchom serwer programistyczny Flask, aby przetestować aplikację:

python app.py

Twoja aplikacja będzie teraz dostępna w przeglądarce internetowej pod adresem:

http://your_server_ip:5000

> Ważne: Wbudowany serwer programistyczny Flask nie jest odpowiedni do użytku produkcyjnego. Jest jednowątkowy, nie zoptymalizowany pod względem wydajności i pozbawiony krytycznych funkcji bezpieczeństwa. Zawsze używaj produkcyjnego serwera WSGI do wdrożeń na żywo.

7. Wdrażanie Flask w środowisku produkcyjnym za pomocą Gunicorn

W przypadku wdrożeń produkcyjnych, Gunicorn (Green Unicorn) jest najczęściej używanym serwerem Python WSGI HTTP. Efektywnie obsługuje wiele równoczesnych żądań i bezproblemowo integruje się z Nginx.

Krok 1: Zainstaluj Gunicorn

Przy aktywnym wirtualnym środowisku zainstaluj Gunicorn:

pip install gunicorn

Krok 2: Uruchom swoją aplikację za pomocą Gunicorn

Uruchom aplikację Flask za pomocą Gunicorn, wiążąc ją z localhost na porcie 8000:

gunicorn app:app -b 127.0.0.1:8000 --workers 3

Wyjaśnienie parametrów:

  • app:app — Odnosi się do obiektu app wewnątrz pliku app.py.
  • -b 127.0.0.1:8000 — Wiąże Gunicorn z localhost na porcie 8000 (Nginx będzie obsługiwać ruch zewnętrzny).
  • --workers 3 — Tworzy 3 procesy robocze do obsługi równoczesnych żądań. Powszechny wzór to (2 × CPU cores) + 1.

Krok 3: Uruchom Gunicorn jako usługę Systemd (Rekomendowane)

Aby upewnić się, że Gunicorn uruchamia się automatycznie po ponownym uruchomieniu serwera, utwórz plik usługi systemd:

sudo nano /etc/systemd/system/my_flaskapp.service

Dodaj następującą konfigurację:

[Unit]
Description=Gunicorn instance to serve my_flaskapp
After=network.target

[Service]
User=your_username
Group=www-data
WorkingDirectory=/home/your_username/my_flaskapp
Environment="PATH=/home/your_username/my_flaskapp/venv/bin"
ExecStart=/home/your_username/my_flaskapp/venv/bin/gunicorn app:app -b 127.0.0.1:8000 --workers 3

[Install]
WantedBy=multi-user.target

Zastąp your_username swoją rzeczywistą nazwą użytkownika serwera. Następnie włącz i uruchom usługę:

sudo systemctl daemon-reload
sudo systemctl start my_flaskapp
sudo systemctl enable my_flaskapp

Sprawdź status usługi:

sudo systemctl status my_flaskapp

8. Konfigurowanie Nginx jako Reverse Proxy

Nginx działa jako reverse proxy, umieszczony przed Gunicorn i obsługujący cały przychodzący ruch HTTP/HTTPS. Ta konfiguracja poprawia wydajność, umożliwia terminację SSL i pozwala na efektywne serwowanie plików statycznych.

Krok 1: Instalacja Nginx

sudo apt install nginx -y

Krok 2: Tworzenie pliku konfiguracyjnego Nginx

Utwórz nowy blok serwera dla swojej aplikacji Flask:

sudo nano /etc/nginx/sites-available/my_flaskapp

Dodaj następującą konfigurację:

server {
    listen 80;
    server_name your_domain_or_ip;  # Replace with your domain or server IP

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /static {
        alias /home/your_username/my_flaskapp/static;
        expires 30d;
    }
}

Krok 3: Włączenie konfiguracji

Utwórz dowiązanie symboliczne, aby włączyć witrynę i przetestować konfigurację Nginx:

sudo ln -s /etc/nginx/sites-available/my_flaskapp /etc/nginx/sites-enabled
sudo nginx -t

Jeśli test zwróci syntax is ok i test is successful, uruchom ponownie Nginx:

sudo systemctl restart nginx

Twoja aplikacja Flask jest teraz dostępna pod adresem http://your_domain_or_ip na porcie 80.

9. Zabezpieczanie aplikacji Flask za pomocą SSL/HTTPS

Uruchamianie aplikacji przez HTTPS nie jest już opcjonalne — to fundamentalny wymóg bezpieczeństwa, zaufania użytkowników i rankingów SEO. Możesz uzyskać i zainstalować bezpłatny certyfikat SSL za pomocą Certbot z Let’s Encrypt, lub zakupić certyfikat premium za pośrednictwem SSL Certificates w celu uzyskania ulepszonej walidacji i gwarancji.

Zainstaluj Certbot i uzyskaj bezpłatny certyfikat SSL

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain.com -d www.your_domain.com

Certbot automatycznie zmodyfikuje konfigurację Nginx, aby włączyć HTTPS i skonfigurować automatyczne odnawianie certyfikatu.

Sprawdź, czy automatyczne odnawianie jest skonfigurowane:

sudo certbot renew --dry-run

10. Konfiguracja Firewall

Upewnij się, że firewall serwera zezwala na ruch na niezbędnych portach:

sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
sudo ufw status

Nginx Full otwiera zarówno port 80 (HTTP) jak i port 443 (HTTPS).

11. Rozwiązywanie typowych problemów

ProblemPrawdopodobna przyczynaRozwiązanie
502 Bad GatewayGunicorn nie jest uruchomionySprawdź sudo systemctl status my_flaskapp
Permission denied na gnieździeNieprawidłowe uprawnienia do plikuUpewnij się, że użytkownik Nginx ma dostęp do katalogu aplikacji
Aplikacja Flask nie znalezionaZły katalog roboczy w pliku usługiDokładnie sprawdź ścieżkę WorkingDirectory w konfiguracji systemd
Port 5000 niedostępnyZapora blokuje portOtwórz port za pomocą sudo ufw allow 5000 (tylko do programowania)
ModuleNotFoundErrorŚrodowisko wirtualne nie jest aktywowaneUpewnij się, że ExecStart wskazuje na binarny plik Python/Gunicorn z venv

12. Podsumowanie i następne kroki

Wdrożenie aplikacji Flask na serwerze hostingowym obejmuje kilka powiązanych ze sobą kroków: skonfigurowanie czystego środowiska serwera, instalację Python i Flask w wirtualnym środowisku, konfigurację Gunicorn jako produkcyjnego serwera WSGI oraz umieszczenie Nginx z przodu jako reverse proxy. Dodanie szyfrowania SSL finalizuje bezpieczne wdrożenie gotowe do produkcji.

Oto szybkie podsumowanie pełnego stosu wdrożenia:

  • Flask — framework webowy Python
  • Gunicorn — produkcyjny serwer WSGI
  • Nginx — reverse proxy i serwer plików statycznych
  • SSL/TLS — szyfrowanie HTTPS
  • Systemd — zarządzanie procesami i automatyczne ponowne uruchomienie

Aby uzyskać najlepsze doświadczenie hostingu Flask, potrzebujesz środowiska serwera, które daje ci pełny dostęp root i niezawodną wydajność. Plany VPS Hosting AlexHost to doskonały wybór, oferujący magazyn SSD, dedykowane zasoby i pełny dostęp SSH. Jeśli potrzebujesz jeszcze większej mocy dla aplikacji o wysokim ruchu, zapoznaj się z naszymi Serwerami dedykowanymi dla maksymalnej wydajności i izolacji.

Jeśli zarządzasz wieloma projektami internetowymi i wolisz interfejs panelu sterowania, rozważ naszą opcję VPS z cPanel, która upraszcza zarządzanie serwerem, jednocześnie dając ci elastyczność do uruchamiania aplikacji Python.

Postępując zgodnie z tym przewodnikiem, twoja aplikacja Flask jest teraz prawidłowo skonfigurowana, zabezpieczona i gotowa do obsługi rzeczywistych użytkowników w środowisku produkcyjnym. Regularnie aktualizuj swoje zależności, monitoruj logi aplikacji i wdrażaj odpowiednie strategie tworzenia kopii zapasowych, aby utrzymać zdrowe, długotrwałe wdrożenie.