Когда вы собираетесь развертывать приложение React, вы обычно используете такой инструмент, как Webpack, чтобы скомпилировать его в набор stati c файлов. Как только вы это сделаете, развертывание через nginx будет меньше и быстрее, чем Express сервер, и, поскольку у вас не задействован весь интерпретатор Node, задействовано меньше частей, которые потенциально могут иметь проблемы с безопасностью.
На самом деле, даже если остальная часть вашего приложения находится в контейнерах, может быть полезно разместить внешний интерфейс где-то снаружи (например, если вы развертываете на AWS, поместите встроенный фронт). -конец в ведро S3). Это может немного упростить механизм развертывания, а благодаря хэшированию файлов в Webpack вы можете сохранить старые версии кода для браузеров, которые недавно не перезагружали страницу. Вам все еще, вероятно, нужен прокси nginx (для обслуживания страницы /index.html
, для прокси серверных служб), но вам не обязательно повторно развертывать его при изменении внешнего кода.
Единственным реальным преимуществом установки развертывания на основе Express является возможность оперативной перезагрузки вашего кода в процессе производства. Однако это может привести к высокому риску человеческой ошибки: сделать случайную опечатку и сохранить файл, и конечные пользователи увидят страницу с ошибкой. Я бы избежал этого пути.