Nginx+python

From TÜ Narva Kolledži Wiki
Revision as of 20:35, 7 December 2022 by Ilia (talk | contribs)
Jump to navigation Jump to search

Что такое Nginx

Nginx logo
Nginx logo

Nginx - эффективный инструмент по развертыванию веб-сервера. Если посмотреть точное определение, то nginx - это веб-сервер, обратный прокси-сервер и почтовый прокси-сервер с открытым исходным кодом и асинхронной архитектурой. В отличие от обычного веб-сервера, Nginx не создает отдельный поток для каждого запроса, а разделяет его на более мелкие отдельные структуры типа, называемые рабочими соединениями. Каждое из этих соединений обрабатывается отдельным рабочим процессом, и после выполнения они объединяются в один блок, который возвращает результат основному процессу данных. Один рабочий может одновременно обрабатывать до 1024 запросов одного типа.

Инструкция по развертыванию Python приложений на Nginx в Ubuntu

В этой инструкции я буду развертывать Django приложение на Nginx.
Инструкция так же подойдет для абсолютно любого веб-приложения, написанного на языке Python.

Необходимые технологии

Для реализации нам потребуются следующие технологии:

  • Nginx
  • Python
  • uWSGI - это одна из реализаций интерфейса WSGI для взаимодействия приложений на языке Python и самого веб-сервера.
  • Django


Стек наших компонентов будет выглядеть следующим образом:
Cтек

Устанавливаем Python

Для начала работы нам нужен сам язык python и пакеты для работы с ним.

sudo apt-get update
sudo apt-get install python3  python3-pip python3-dev
  • python3-pip- установщик пакетов python
  • python3-dev - стандартный набор библиотек для разработчика

Так же нам потребуется установить Python библиотеку для создания виртуального окружения:

sudo pip3 install virtualenv

Настраиваем виртуальное окружение

Создаем виртуальное окружение для uWSGI:

virtualenv uwsgi-test

Переходим в директорию

cd uwsgi-test/

Активируем окружение:

source ./bin/activate


Cтек

uWSGI

apt-get install uwsgi uwsgi-plugin-python3