Могу ли я отрендерить Angular и вернуться к SSR с S3? - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть приложение Angular, которое в настоящее время отображается на стороне сервера .Net Core. Я хочу изменить процесс сборки таким образом, чтобы он отображал почти весь мой сайт и помещал все статические файлы в корзину Amazon S3, а вместо этого указывал там мое доменное имя. Однако я не могу предварительно отобразить весь свой веб-сайт (по крайней мере, пока).

Я нашел, как я могу вернуть свой index.html для любых страниц, которые не представлены и не существуютв контейнере S3, который позволит мне рендерить страницу на стороне клиента, но я хочу сделать еще один шаг вперед и на стороне сервера рендерить страницу на лету.

Есть ли способ, которым яМожно ли использовать сайт S3 в качестве обратного прокси-сервера, который будет извлекать страницу SSR с моего сайта .Net Core, если предварительно созданная версия не существует?

Обновление: Просто чтобы быть понятным, S3Bucket будет для CloudFront CDN, поэтому настройка прокси перед S3 Bucket, вероятно, не вариант.

Обновление 2: Я обнаружил, что могу доставить динамическиконтент через CloudFront , но я не хочу, чтобы все было динамичным. Я хочу, чтобы любой статический контент (например, мои предварительно обработанные страницы) обслуживался из дешевого сегмента S3 и обслуживал динамический контент из моего более дорогого экземпляра EC2, только если статическая версия не существует.

1 Ответ

1 голос
/ 09 ноября 2019

Краткий ответ - Нет. Вы не можете использовать S3 в качестве обратного прокси-сервера для извлечения недостающих объектов из другого источника.

Но, если ваш статический контент можно легко идентифицировать по пути, вы можете создать два источника в CloudFront, один для статического и один для динамического контента, и обслуживать их, используя различные комбинация поведения / пути комбинация для каждого источника: корзина S3 для вашего статического содержимого и, возможно, настраиваемый источник для вашего динамического содержимого (размещенный на EC2).

Возможно, вы также захотите взглянуть на CloudFront Origin Failover,хотя он предназначен для поддержки сценариев высокой доступности, он может соответствовать вашему варианту использования. Вам также понадобятся два источника: основной и аварийный (для статического и динамического содержимого). Подробнее смотрите здесь: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/high_availability_origin_failover.html

...