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_ipZastą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 --versionPowinieneś zobaczyć dane wyjściowe podobne do Python 3.10.x. Jeśli Python nie jest zainstalowany, przejdź do jego instalacji:
sudo apt install python33. 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 -yZapewnia 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 -yZweryfikuj instalację:
pip3 --versionKrok 2: Utwórz katalog projektu
Zorganizuj swoją aplikację, tworząc dedykowany katalog:
mkdir my_flaskapp
cd my_flaskappKrok 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 venvAktywuj wirtualne środowisko:
source venv/bin/activateTwó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 FlaskPotwierdź instalację:
flask --versionPowinieneś 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.pyKrok 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.pyTwoja 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 gunicornKrok 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 3Wyjaśnienie parametrów:
app:app— Odnosi się do obiektuappwewnątrz plikuapp.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.serviceDodaj 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.targetZastą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_flaskappSprawdź status usługi:
sudo systemctl status my_flaskapp8. 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 -yKrok 2: Tworzenie pliku konfiguracyjnego Nginx
Utwórz nowy blok serwera dla swojej aplikacji Flask:
sudo nano /etc/nginx/sites-available/my_flaskappDodaj 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 -tJeśli test zwróci syntax is ok i test is successful, uruchom ponownie Nginx:
sudo systemctl restart nginxTwoja 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.comCertbot automatycznie zmodyfikuje konfigurację Nginx, aby włączyć HTTPS i skonfigurować automatyczne odnawianie certyfikatu.
Sprawdź, czy automatyczne odnawianie jest skonfigurowane:
sudo certbot renew --dry-run10. 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 statusNginx Full otwiera zarówno port 80 (HTTP) jak i port 443 (HTTPS).
11. Rozwiązywanie typowych problemów
| Problem | Prawdopodobna przyczyna | Rozwiązanie |
|---|---|---|
502 Bad Gateway | Gunicorn nie jest uruchomiony | Sprawdź sudo systemctl status my_flaskapp |
Permission denied na gnieździe | Nieprawidłowe uprawnienia do pliku | Upewnij się, że użytkownik Nginx ma dostęp do katalogu aplikacji |
| Aplikacja Flask nie znaleziona | Zły katalog roboczy w pliku usługi | Dokładnie sprawdź ścieżkę WorkingDirectory w konfiguracji systemd |
| Port 5000 niedostępny | Zapora blokuje port | Otwórz port za pomocą sudo ufw allow 5000 (tylko do programowania) |
ModuleNotFoundError | Środowisko wirtualne nie jest aktywowane | Upewnij 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.
na wszystkich usługach hostingowych