Как да инсталирате Flask на хостинг: Пълно ръководство стъпка по стъпка
Flask е лекотежна, гъвкава уеб рамка за Python, която позволява на разработчиците да изграждат и разполагат уеб приложения бързо и ефективно. Независимо дали стартирате личен проект, REST API или пълномащабна уеб услуга, знанието как правилно да инсталирате и конфигурирате Flask в хостинг среда е съществено умение. Това всеобхватно ръководство ви преведе през всяка стъпка — от настройка на сървъра до производствено разполагане с Gunicorn и Nginx.
1. Предварителни изисквания
Преди да се потопите в процеса на инсталация, уверете се, че имате следното:
Хостинг среда, която поддържа Python
Имате нужда от хостинг услуга, която ви дава пълен контрол над вашата сървърна среда. Планите за споделен хостинг често ограничават изпълнението на Python, така че за Flask разполагане се препоръчва силно VPS Hosting план или Dedicated Server. Тези опции ви дават root достъп, пълни възможности за управление на пакети и гъвкавост да конфигурирате вашия стек точно както е необходимо.
SSH достъп
Ще имате нужда от SSH достъп, за да се свържете с вашия отдалечен сървър и да изпълните команди. Повечето Linux-базирани VPS и dedicated сървърни среди поддържат това по подразбиране.
Инсталиран Python
Python 3.8 или по-висока версия се препоръчва. Повечето модерни хостинг среди идват с предварително инсталиран Python, но ще го проверим по време на настройката.
Опционално: Доменно име
Ако планирате да направите вашето Flask приложение публично достъпно чрез домен вместо сурово IP адрес, помислете да регистрирате един чрез Domain Registration преди да начнете.
2. Свързване към вашия сървър чрез SSH
Отворете вашия терминал (Linux/macOS) или SSH клиент като PuTTY (Windows) и се свържете с вашия сървър:
ssh username@your_server_ipЗаменете username с вашето действително потребителско име на сървъра и your_server_ip с публичния IP адрес на вашия сървър.
След свързване, проверете дали Python 3 е наличен:
python3 --versionТрябва да видите изход подобен на Python 3.10.x. Ако Python не е инсталиран, преминете към инсталирането му:
sudo apt install python33. Актуализиране на вашия сървър
Преди да инсталирате всички пакети, е добра практика да актуализирате списъка с пакети на вашата система и да надградите съществуващите пакети до техните последни версии:
sudo apt update
sudo apt upgrade -yТова гарантира, че работите със най-стабилните и безопасни версии на всички зависимости.
4. Инсталиране на Flask
Стъпка 1: Инсталиране на pip
pip е мениджър на пакети на Python и е необходим за инсталиране на Flask и други Python библиотеки. Инсталирайте го, ако вече не е наличен:
sudo apt install python3-pip -yПроверете инсталацията:
pip3 --versionСтъпка 2: Създаване на директория на проекта
Организирайте вашето приложение, като създадете посветена директория:
mkdir my_flaskapp
cd my_flaskappСтъпка 3: Настройка на виртуална среда
Използването на виртуална среда изолира зависимостите на вашия проект от глобалната инсталация на Python, предотвратявайки конфликти на версии и поддържайки вашия сървър чист:
sudo apt install python3-venv -y
python3 -m venv venvАктивирайте виртуалната среда:
source venv/bin/activateВашият терминален подкана ще се промени, за да покаже, че виртуалната среда е активна, обикновено показвайки (venv) в началото на линията.
Стъпка 4: Инсталиране на Flask
С активирана виртуална среда, инсталирайте Flask с помощта на pip:
pip install FlaskПотвърдете инсталацията:
flask --versionТрябва да видите версията на Flask заедно с версиите на Python и Werkzeug.
5. Създаване на просто Flask приложение
Стъпка 1: Създаване на файла на приложението
Създайте нов файл, наречен app.py вътре в директорията на вашия проект:
nano app.pyСтъпка 2: Напишете вашето Flask приложение
Добавете следния минимален код на 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)Разбор на кода:
Flask(__name__)— Създава нов екземпляр на Flask приложение.@app.route('/')— Определя маршрут на URL за началната страница.app.run(host='0.0.0.0', port=5000)— Стартира сървъра за разработка, което го прави достъпен на всички мрежови интерфейси на порт 5000.
Стъпка 3: Запазване и излизане
Натиснете CTRL + X, след това Y и натиснете Enter за запазване на файла и излизане от редактора nano.
6. Стартиране на вашето Flask приложение в режим на разработка
Стартирайте сървъра за разработка на Flask, за да тествате вашето приложение:
python app.pyВашето приложение сега ще бъде достъпно в уеб браузър на:
http://your_server_ip:5000> Важно: Вградения сървър за разработка на Flask не е подходящ за производствено използване. Той е еднопоточен, не е оптимизиран за производителност и липсват критични функции за безопасност. Винаги използвайте производствен WSGI сървър за живи разполагания.
7. Разполагане на Flask в производствена среда с Gunicorn
За производствени разполагания, Gunicorn (Green Unicorn) е най-широко използваният Python WSGI HTTP сървър. Той обработва множество едновременни заявки ефективно и се интегрира безпроблемно с Nginx.
Стъпка 1: Инсталиране на Gunicorn
С активирана виртуална среда, инсталирайте Gunicorn:
pip install gunicornСтъпка 2: Стартиране на вашето приложение с Gunicorn
Стартирайте вашето Flask приложение с помощта на Gunicorn, свързвайки го към localhost на порт 8000:
gunicorn app:app -b 127.0.0.1:8000 --workers 3Обяснение на параметрите:
app:app— Се отнася доappобекта вътре в файлаapp.py.-b 127.0.0.1:8000— Свързва Gunicorn към localhost на порт 8000 (Nginx ще обработва външния трафик).--workers 3— Създава 3 работни процеса за обработка на едновременни заявки. Обща формула е(2 × CPU cores) + 1.
Стъпка 3: Стартиране на Gunicorn като Systemd услуга (препоръчано)
За да гарантирате, че Gunicorn се стартира автоматично при рестартиране на сървъра, създайте файл на systemd услуга:
sudo nano /etc/systemd/system/my_flaskapp.serviceДобавете следната конфигурация:
[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Заменете your_username с вашето действително потребителско име на сървъра. След това активирайте и стартирайте услугата:
sudo systemctl daemon-reload
sudo systemctl start my_flaskapp
sudo systemctl enable my_flaskappПроверете статуса на услугата:
sudo systemctl status my_flaskapp8. Конфигуриране на Nginx като обратен прокси
Nginx действа като обратен прокси, седейки пред Gunicorn и обработвайки целия входящ HTTP/HTTPS трафик. Тази настройка подобрява производителността, позволява SSL прекратяване и ви позволява да обслужвате статични файлове ефективно.
Стъпка 1: Инсталиране на Nginx
sudo apt install nginx -yСтъпка 2: Създаване на конфигурационен файл на Nginx
Създайте нов конфигурационен блок на сървър за вашето Flask приложение:
sudo nano /etc/nginx/sites-available/my_flaskappДобавете следната конфигурация:
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;
}
}Стъпка 3: Активиране на конфигурацията
Създайте символна връзка, за да активирате сайта и тествайте конфигурацията на Nginx:
sudo ln -s /etc/nginx/sites-available/my_flaskapp /etc/nginx/sites-enabled
sudo nginx -tАко тестът върне syntax is ok и test is successful, рестартирайте Nginx:
sudo systemctl restart nginxВашето Flask приложение сега е достъпно на http://your_domain_or_ip на порт 80.
9. Защита на вашето Flask приложение с SSL/HTTPS
Стартирането на вашето приложение над HTTPS вече не е опционално — това е фундаментално изискване за безопасност, доверие на потребителя и SEO класирания. Можете да получите и инсталирате безплатен SSL сертификат с помощта на Certbot с Let’s Encrypt, или да закупите премиум сертификат чрез SSL Certificates за подобрена валидация и гарантийно покритие.
Инсталиране на Certbot и получаване на безплатен SSL сертификат
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain.com -d www.your_domain.comCertbot ще автоматично модифицира вашата конфигурация на Nginx, за да активира HTTPS и да настрои автоматично обновяване на сертификата.
Проверете дали е конфигурирано автоматично обновяване:
sudo certbot renew --dry-run10. Конфигурация на защитната стена
Уверете се, че защитната стена на вашия сървър позволява трафик на необходимите портове:
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
sudo ufw statusNginx Full отваря както порт 80 (HTTP), така и порт 443 (HTTPS).



