Как разрешить доступ к бэкенду только из внешнего интерфейса в Docker - PullRequest
0 голосов
/ 16 октября 2019

У меня есть приложение, React для внешнего интерфейса, Node.js для внутреннего интерфейса. Приложение будет загружено в Digital Ocean, как я могу скрыть серверную часть, чтобы пользователи имели доступ только к веб-интерфейсу.

Ответы [ 2 ]

1 голос
/ 16 октября 2019

Причина, по которой вы не можете скрыть свой бэкэнд, заключается в том, что React по умолчанию использует рендеринг на стороне клиента. Это означает, что клиент использует браузер для выполнения вызовов к серверу. Есть способы сделать ваш бэкэнд безопасным, например, с помощью токена доступа или установки брандмауэра веб-приложений перед сервером. Я полагаю, что есть способы заставить ваш интерфейс реагировать на работу в качестве рендеринга на стороне сервера, но по умолчанию и как одностраничное приложение будет выполнять рендеринг на стороне клиента.

Эта статья может помочь вам понять:https://www.toptal.com/front-end/client-side-vs-server-side-pre-rendering

0 голосов
/ 16 октября 2019

Если используется Docker: вы можете разделить интерфейс и бэкэнд на разные контейнеры, чтобы он мог получать доступ извне, а бэкэнд скрывался за сетью внутри Docker. Ваш веб-интерфейс будет вызывать бэкэнд по внутренней сети Docker по имени приложения.

Вы также можете скрыть интерфейс и бэкэнд, используя nginx. Используйте nginx для доступа к веб-интерфейсу в вашей докерной сети. Оказывается, доступ извне будет только к nginx.

подробнее https://docs.docker.com/compose/networking/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...