Публикация и настройка сайтов на Python на веб сервере Nginx и Apache

Если вам необходимо разместить сайт на 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 на хостинг.

Итак,  примерный план развертывания приложения таков:

  1. Установка python 3 и pip 3 на ОС
  2. Развертывание виртуальной среды virtualenv
  3. Установка Python, Flask или Django и обновление pip в virtualenv
  4. Установка Gunicorn или uWSGI в виртуальном окружении
  5. Загрузка Python приложения в виртуальное окружение и тестирование
  6. Создаем точку входа WSGI
  7. Создаем системный сервис для gunicorn или uWSGI с автозапуском и стартуем его
  8. Настраиваем nginx для проксирования запросов в супервизор
  9. Перезапускаем nginx

Для вас в отдельной статье я написал подробный рецепт установки и настройки комбинации CentOS + Nginx + Gunicorn + Flask. Статья доступна на моем другом сайте.

Вот ссылки на другие рецепты и конфигурации:

 

Добавляйте эту страницу себе в закладки, в ней собрано все необходимое!

Популярность: нет оценки

Поделиться в соц. сетях

Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники

Обсуждение закрыто.