Назад | Перейти на главную страницу

Внутренний запрос к Gunicorn / Flask в сети Docker: стоит ли использовать Nginx?

Есть много четких ответов на вопрос, почему следует использовать Nginx в классической трехуровневой архитектуре с приложением Gunicorn / Flask, где вы также обслуживаете статический контент.

Архитектура, которую я хочу развернуть, отличается, и я не могу найти ответа на свои сомнения, имеет ли смысл ставить Nginx перед Gunicorn в этом случае.

В моем случае у меня есть типичная серверная часть в Node.js, но когда новые данные отправляются в серверную часть, она отправляет их для асинхронной обработки в приложение Gunicorn / Flask.

Приложение Node и приложение Gunicorn / Flask находятся в двух разных контейнерах Docker и обмениваются данными через сеть докеров. Только приложение Node взаимодействует с приложением Gunicorn / Flask.

Имеет ли смысл размещать Nginx перед приложением Gunicorn / Flask, поскольку он не обслуживает статический контент и не связан с «внешним миром»?

Спасибо!

Редактировать:

Я добавляю новую информацию на основе комментария Майкла Хэмптона:

Существует также интерфейсный компонент, который обслуживается Nginx. Входящий трафик перенаправляется traefik на интерфейсный компонент или серверный компонент Node, для которого я использую pm2.

Есть две сети докеров. С одной стороны, сеть, которая используется для traefik, где, помимо traefik, подключены интерфейсный компонент и серверный компонент Node, поскольку они должны быть доступны извне. С другой стороны, есть внутренняя сеть, к которой прикреплены серверный компонент Node и приложение Gunicorn / Flask, чтобы гарантировать, что приложение Gunicorn / Flask недоступно извне.

На данный момент внутренний компонент Node отправляет запросы непосредственно через внутреннюю сеть докеров в приложение Flask через порт, на котором его обслуживает Gunicorn. Поскольку я не хочу, чтобы он был доступен извне, трафик на Gunicorn не перенаправляется через traefik.

Это хороший подход, или мне следует поставить что-то вроде Nginx перед Gunicorn в контейнере Gunicorn / Flask?