Nginx (engine x — по-русски произносится как энджи́нкс) — веб-сервер, занимающий первое место по частоте использования среди 100 000 самых посещаемых сайтов в мире. Nginx также работает как обратный прокси-сервер для обработки запросов и передачи ответов для WSGI-серверов Python или даже других веб-серверов, таких как Apache.
Nginx обычно используется в качестве веб-сервера для предоставления статических ресурсов, таких как изображения, CSS-стили и JavaScript-файлы, веб-браузеру.
Также Nginx часто настраивается как обратный прокси-сервер, передающий соответствующие входящие HTTP-запросы на сервер WSGI. Сервер WSGI создает динамический контент, выполняя Python-код. Когда сервер WSGI возвращает ответ, который часто имеет формат HTML, JSON или XML, обратный прокси-сервер отправляет его клиенту.
Цикл HTTP-запроса и ответа с обратным прокси-сервером и сервером WSGI можно увидеть на следующей диаграмме.
Как правило, клиент не знает или не должен знать, что результат сгенерировало веб-приложение Python. В принципе, результат мог быть сгенерирован одной или несколькими серверными системами, написанными на любом языке программирования, а не только на Python.
Давайте разберемся с этими двумя «конкурирующими» серверами. Оба они являются фантастическими проектами с открытым исходным кодом, и любой из них хорошо подойдет для развертывания вашего веб-приложения. На самом деле, многие ведущие глобальные веб-приложения используют в своих развертываниях оба сервера — для работы на разных этапах цикла HTTP-запроса и ответа.
Некоторые разработчики используют Nginx чаще, чем Apache, потому что конфигурация Nginx проще.
Конфигурация Nginx по умолчанию (после стандартной установки с помощью системного менеджера пакетов или компиляции из исходного кода) является хорошей основой для обеспечения безопасности. Однако настройка шифров и перенаправлений может быть несколько запутанной для новичков. Мы советуем прочитать некоторые из нижеперечисленных материалов. Так вы сможете убедиться, что избегаете наиболее распространенных ошибок безопасности.
Nginx можно использовать и без Python, существует огромное количество фантастических ресурсов, полезных для установки, настройки и оптимизации этой реализации веб-сервера. Ниже перечислены некоторые из них.
proxy_cache
и связанных с ней директив.Pydantic - это мощная библиотека проверки данных и управления настройками для Python, созданная для повышения…
Python предлагает набор библиотек, удовлетворяющих различные потребности в визуализации, будь то академические исследования, бизнес-аналитика или…
В Python для представления данных в двоичной форме можно использовать байты. Из этой статьи вы…
В этой статье рассказывается о том, что такое Werkzeug и как Flask использует его для…
При работе с датами часто возникает необходимость прибавлять к дате или вычитать из нее различные…
В этом руководстве мы рассмотрим, как добавить социальную аутентификацию с помощью GitHub и Google в…