Если вам необходимо разместить сайт на Python на хостинге, то вам потребуется или VPS/VDS хостинг или специальный хостинг для Python проектов. Существуют готовые Python хостинги, такие как Heroku и PythonAnywhere, которые позволяют запустить Python код за считанные минуты, или же вы можете разместить сайт на своем Linux сервере с веб сервером Apache или Nginx. Второй, конечно, предпочтительнее из-за более высокой производительности.
На специализированных Python хостингах вы изолированы от того, какой там крутится веб сервер и ОС, но ограничены тем, какой тип кода Python и на каком фреймворке вы можете разместить. Ведь проекты на Python чаще всего делают на одном из двух фреймворков: Flask или Django, хотя можно написать код и без них.
На своем сервере есть различия в версиях Linux, самих веб-серверов и супервизоров, которые используются для связи Python и веб сервера. Именно из-за этого обилия и разнообразия связок ОС+веб-сервер+Python фреймворк+супервизор и появляется большое чисто инструкций по настройке возможных конфигураций, которые, зачастую друг другу противоречат.
Самыми рекомендуемыми связками являются: CentOS/Debian + nginx + Gunicorn + Flask/Django или CentOS/Debian + nginx + uWSGI + Flask/Django. Допустимы и комбинации на базе Ubuntu и Apache, но они не рекомендуются для высоко нагруженных проектов.
В этой статье я решил свести воедино необходимую информацию для установки приложения Python на хостинг.
Итак, примерный план развертывания приложения таков:
- Установка python 3 и pip 3 на ОС
- Развертывание виртуальной среды virtualenv
- Установка Python, Flask или Django и обновление pip в virtualenv
- Установка Gunicorn или uWSGI в виртуальном окружении
- Загрузка Python приложения в виртуальное окружение и тестирование
- Создаем точку входа WSGI
- Создаем системный сервис для gunicorn или uWSGI с автозапуском и стартуем его
- Настраиваем nginx для проксирования запросов в супервизор
- Перезапускаем nginx
Для вас в отдельной статье я написал подробный рецепт установки и настройки комбинации CentOS + Nginx + Gunicorn + Flask. Статья доступна на моем другом сайте.
Вот ссылки на другие рецепты и конфигурации:
- Ubuntu + Flask + uWSGI + nginx
- Flask + uWGSI +Nginx
- CentOS + Django + Gunicorn + Nginx
- Ubuntu + Flask + Gunicorn + Nginx
- Ubuntu + Flask + Apache + mod_wsgi
- Развертывание Django на Heroku
- Публикация Flask на Heroku
Добавляйте эту страницу себе в закладки, в ней собрано все необходимое!