#amazon-web-services #angular #amazon-ec2 #configuration
#amazon-веб-сервисы #угловатый #amazon-ec2 #конфигурация
Вопрос:
Мне удалось успешно создать приложение Angular2 Quickstart на моем локальном компьютере, но я хотел бы перейти к его настройке на экземпляре AWS. Проблема в том, что я подключаюсь к экземпляру по ssh, и поэтому npm start
команда не загружает приложение в мой локальный браузер. Даже предоставленные «Внешние» адреса не работают, даже если назначен эластичный IP-адрес и открыт соответствующий порт. Я также просмотрел node_modules/lite-server
файлы, чтобы обновить любые необходимые изменения конфигурации, но я не нашел, как изменить его должным образом.
Кто-нибудь может указать мне на какие-нибудь ресурсы, которые помогут мне начать работу с angular2 на AWS?
Ответ №1:
Итак, во-первых, существуют некоторые различия между вашим локальным хостом и экземпляром aws EC2.
- Ваш компьютер — это графический компьютер с браузером, виртуальная машина ec2 — это просто linux-сервер на основе командной строки, на котором не установлен браузер.
npm start
, точно так же, как «grunt someTask
» имеет дополнительные элементы, встроенные в шаги, которые не имели бы смысла на сервере Linux … т. Е. Автоматически Открывать окно браузера и выполнять перезагрузку в реальном времени для активной разработки и т. Д.- виртуальная машина EC2 — это место, где вы хотите использовать ее скорее как бета-сервер или рабочий сервер, что означает, что вы не запускаете и не останавливаете свое приложение с помощью npm start, вместо этого вы хотите запустить его
node yourAppFile.js
, и вы просто запускаете его, чтобы посмотреть, работает ли оно. Вы здесь не разрабатываете.
Кроме того, сама виртуальная машина ec2 защищена / защищена группой безопасности, и это позволяет по умолчанию получать доступ к очень небольшому количеству портов из внешнего мира, поэтому вам нужно отредактировать «входящие правила» группы безопасности и добавить правило, которое, по сути, позволяет: "custom" --> "the node port" --> "your IP"
. Это позволит подключиться к нему с помощью vm-public-ip:port-of-node-app
, который будет выглядеть примерно так в вашем браузере: 56.128.17.42:3000
. И поскольку вы указываете свой собственный IP-адрес в этом правиле, никакие другие IP-адреса не смогут загрузить его в свои браузеры… только вы. Если бы вы указали «0.0.0.0 / 0» в поле ip, это позволило бы подключаться всем пользователям в любом месте.
Ответ №2:
Я бы протестировал curl на вашем локальном компьютере, чтобы убедиться, что он запущен и работает. Вы можете сделать это с помощью «curl http://localhost:3000 / (измените 3000 на любой порт, на котором вы работаете).
Если это работает нормально, у вас может возникнуть проблема с группами безопасности. Перейдите в раздел группы безопасности на странице EC2 и выберите группу безопасности для своего сервера и убедитесь, что у вас открыт порт с вашего IP-адреса (вы можете погуглить «какой у меня ip», если вы его не знаете). Вы можете просто открыть его для всего мира, если не беспокоитесь о безопасности.
Комментарии:
1. Выполняю ли я
curl
инструкцию внутри shh или с моего локального машинного терминала? Что делает керлингlocalhost
?2. Curl — это библиотека командной строки для выполнения запросов по различным протоколам, включая http. Я бы начал с выполнения его на экземпляре ec2. Localhost — это псевдоним любого компьютера, на котором вы находитесь. Обычно он указывает на адрес обратной связи (127.0.0.1), а не на какую-либо конкретную сетевую интерфейсную карту. Если он работает на локальном хосте из экземпляра ec2, то вы знаете, что сервер запущен.