Nginx+python: Difference between revisions

From TÜ Narva Kolledži Wiki
Jump to navigation Jump to search
Content deleted Content added
Ilia (talk | contribs)
No edit summary
Ilia (talk | contribs)
No edit summary
Line 4: Line 4:
Nginx - эффективный инструмент по развертыванию веб-сервера. Если посмотреть точное определение, то nginx - это веб-сервер, обратный прокси-сервер и почтовый прокси-сервер с открытым исходным кодом и асинхронной архитектурой.
Nginx - эффективный инструмент по развертыванию веб-сервера. Если посмотреть точное определение, то nginx - это веб-сервер, обратный прокси-сервер и почтовый прокси-сервер с открытым исходным кодом и асинхронной архитектурой.
В отличие от обычного веб-сервера, Nginx не создает отдельный поток для каждого запроса, а разделяет его на более мелкие отдельные структуры типа, называемые рабочими соединениями. Каждое из этих соединений обрабатывается отдельным рабочим процессом, и после выполнения они объединяются в один блок, который возвращает результат основному процессу данных. Один рабочий может одновременно обрабатывать до 1024 запросов одного типа.
В отличие от обычного веб-сервера, Nginx не создает отдельный поток для каждого запроса, а разделяет его на более мелкие отдельные структуры типа, называемые рабочими соединениями. Каждое из этих соединений обрабатывается отдельным рабочим процессом, и после выполнения они объединяются в один блок, который возвращает результат основному процессу данных. Один рабочий может одновременно обрабатывать до 1024 запросов одного типа.
<br />

<br />
<br />
<br />
<br />
<br />
<br />
=Инструкция по развертыванию Python приложений на Nginx в Ubuntu=
=Инструкция по развертыванию Python приложений на Nginx в Ubuntu=
В этой инструкции я буду развертывать Django приложение на Nginx.
В этой инструкции я буду развертывать Python приложение на Nginx.
<br />Инструкция так же подойдет для абсолютно любого веб-приложения, написанного на языке Python.
<br />Инструкция подойдет для абсолютно любого веб-приложения, написанного на языке Python, например Django или Flask.
==Необходимые технологии==
==Необходимые технологии==
Для реализации нам потребуются следующие технологии:
Для реализации нам потребуются следующие технологии:
Line 13: Line 19:
* '''Python'''
* '''Python'''
* '''uWSGI''' - это одна из реализаций интерфейса WSGI для взаимодействия приложений на языке Python и самого веб-сервера.
* '''uWSGI''' - это одна из реализаций интерфейса WSGI для взаимодействия приложений на языке Python и самого веб-сервера.

* '''Django'''
<br /> Стек наших компонентов будет выглядеть следующим образом:
<br /> Стек наших компонентов будет выглядеть следующим образом:
<br />[[File:Nginx2stk.png|800px| Cтек]]
<br />[[File:Nginx2stk.png|800px| Cтек]]

Revision as of 21:59, 7 December 2022

Что такое Nginx

Nginx logo
Nginx logo

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






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

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

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

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

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


Стек наших компонентов будет выглядеть следующим образом:
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