Как развернуть сервер Node.js Express + приложение Vue.js на AWS EC2

Я настраиваю свой веб-сайт, который будет работать на AWS Ubuntu EC2. Это SPA Vue.js, основанное на приложении Nodejs Express с вызовами API и socket.io. На данный момент оба приложения работают, серверная часть находится на моем бесплатном уровне AWS EC2, за Elastic Load Balancer, интерфейсная часть находится на моей машине, так как я над ней работаю. Теперь я хотел бы также развернуть интерфейс на моем AWS EC2, но я не понимаю, как это сделать правильно. Учебники, которые я нашел, используют nginx, но я не уверен, что мне нужен nginx, поскольку у меня уже есть AWS ELB. Буду рад любым советам :)

Мое предложение: нет необходимости использовать и ELB, и nginx для развертывания одного приложения.

Dylan 19.06.2019 11:43
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
2 917
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Я бы выбрал s3 для размещения приложения vue, потому что оно статично и может обслуживаться с помощью s3 и
Я выберу EC2 для размещения своего API (серверного кода), а также сделаю эластичный IP-адрес для связи с моим сервером ec2, чтобы при перезапуске мне не приходилось обрабатывать динамические IP-адреса.

Шаги, чтобы сделать ваш сайт живым

  1. Сначала подключите экспресс-сервер вашего узла к вашему экземпляру ec2.
  2. запустите свой экспресс-сервер node, используя pm2, чтобы служить ему в качестве службы
  3. выставить обслуживаемый порт из групп безопасности экземпляра ec2
  4. сделать корзинку s3 на aws и залить в нее файлы
  5. Совет: просто нажмите кнопку загрузки после того, как перетащите файлы на s3, не нажимайте «Далее».
  6. после загрузки выберите все загруженные файлы и отметьте их как общедоступные
  7. после загрузки перейдите в свойства этого сегмента, а затем выберите статический веб-хостинг и введите index.html в запрашиваемое поле.

** СОВЕТ: не используйте балансировщик нагрузки для этого приложения, используйте его только тогда, когда вы распределяете свою систему по нескольким серверам ec2**

Хорошо, у меня есть ведро S3, работающее с моим приложением Vue. Однако я не понимаю, как открыть порт моего экспресс-приложения. Что я пробовал, так это создать ведро S3 как api.mydomain.com и использовать его в качестве перенаправления на порт приложения моего экспресса 3000. Проблема в том, что мне нужны POST-запросы к моему API и (если я правильно понял) ведра S3 не поддерживает POST (поэтому я получил 405 ошибок от своего приложения Express). Любой совет будет отличным!

JustGreg 25.06.2019 10:55

Глаголы HTTP, т.е. GET PUT POST DELETE, могут быть выполнены из вашего приложения vue и размещены на s3, вам необходимо указать порт в группах безопасности экземпляра EC2, чтобы вы могли получить доступ к своему экспресс-API вне экземпляра aws.amazon.com/premiumsupport/knowledge-center/…, а после этого просто подключитесь ваше приложение vue на IP: порте экземпляра EC2, чтобы делать вам HTTP-запросы

arpitansu 25.06.2019 11:00

Другие вопросы по теме