Запись Route 53 установлена ​​на другом порту

Я рубиновый разработчик и только начал изучать Node.js.

Я запускаю экземпляр на AWS для размещения своих приложений rails с пассажиром + nginx, прослушивающим порт 80.

Теперь я хочу разместить приложение node.js в том же экземпляре (t1-micro) и настроить его для прослушивания через порт 8000.

Как я могу использовать Route 53 для создания набора записей, чтобы указать subdomain.domain.com на my.ip:8000?

Я уже пытался установить запись IPV4, указывающую на my.ip:8000, но безуспешно.

Любая идея, что я делаю неправильно?

Могу ли я использовать nginx для обслуживания своих приложений nodejs?


person gverri    schedule 13.10.2013    source источник


Ответы (3)


Это возможно с помощью перенаправления S3. Создайте сегмент S3 с именем

subdomain.domain.com

Это ведро не обязательно должно быть общедоступным. Затем включите Статический хостинг веб-сайтов в свойствах, выберите параметр Перенаправить ответ и настройте его со следующими параметрами.

Target bucket or domain: my.ip:8000
Protocol: Leave this blank

Затем перейдите на Route53 и создайте набор записей со следующей конфигурацией.

  • Имя: subdomain.domain.com
  • Тип: адрес A-IPv4.
  • Псевдоним: Да
  • Псевдоним цели. Выберите сегмент, который вы только что создали в S3. Если он не появляется, подождите, пока он появится.
  • Политика маршрутизации: простая
  • Оценить состояние цели: Нет

Вот и все, вы сможете перейти к subdomain.domain.com и увидеть, как изменения вступят в силу примерно через 30 секунд. Удачи!

person stelo    schedule 22.02.2018
comment
Это сработало очень хорошо и является недооцененным ответом. Благодарю вас! - person andrasp; 25.07.2018
comment
Итак, просто для понимания, S3 — это просто обходной путь, который позволяет нам установить порт, и он не имеет ничего общего с обычными ведрами s3 для хранения, верно? - person Nathan B; 18.11.2018
comment
фантастика - хотя можно ли скрыть IP-адрес в URL-адресе после подключения? - person brucezepplin; 03.01.2019
comment
IP-адрес отображается неправильно, в моем случае IP-адрес похож на http//myip:80//, поскольку вы можете видеть, что URL-адрес пропускает: и имеет дополнительный / в конце я не знаю, почему? любая помощь будет оценена. - person SATYAJEET RANJAN; 11.02.2019
comment
извините, ребята, это значит, что я должен создать хранилище бакетов и платить за другой сервис только за маршрутизацию? и если у меня есть более 1 кота (или другого сервера) на экземпляре ec2, мне нужно создать s3 для каждого из них? - person BohBah; 02.04.2019
comment
Это потрясающая информация, но я чувствую, что это неправильное решение для того, что пытается сделать ОП. Я чувствую, что ответ datasage ниже более правильный. - person ryangavin; 06.04.2019
comment
Почему я получаю код: Ошибка IncorrectEndpoint 400: Сообщение: указанное ведро существует в другом регионе. Направляйте запросы на указанную конечную точку. Я убедился, что у меня есть местоположение ведра как us-west-2, и выбрал псевдоним также как s3-website-us-west-2.amazonaws.com. - person javatogo; 04.06.2019
comment
@Stelo: Это прекрасно! Однако это кэширует URL-адрес, обновленный в S3, и не обновляет его, даже когда я меняю ответ перенаправления. Пожалуйста помоги! - person Ankit Goel; 02.07.2020
comment
Не забывайте об этом: когда вы настраиваете корзину Amazon S3 для хостинга веб-сайтов, вы должны дать корзине то же имя, что и запись, которую вы хотите использовать для маршрутизации трафика в корзину. Например, если вы хотите направить трафик для example.com в корзину S3, настроенную для размещения веб-сайтов, имя корзины должно быть example.com. с: docs.aws.amazon. com/Route53/latest/DeveloperGuide/ - person ExistMe; 06.12.2020

В общем, DNS не заботится о портах.

Однако вы должны иметь возможность настроить nginx для обработки обоих виртуальных хостов с обратным прокси-сервером для приложения node.js. Все запросы будут поступать на порт 80, но способ их обработки будет зависеть от домена.

person datasage    schedule 13.10.2013
comment
Пример Nginx: serverfault.com/questions/208656/ - person crizCraig; 13.08.2014
comment
Я чувствую, что это настоящий ответ. Я бы настроил ваши субдомены так, чтобы они указывали на хост с nginx, и разрешил nginx направлять запросы на основе субдомена. - person ryangavin; 06.04.2019

Я последовал идее из ответа datasage, и вот как я это сделал!

На 53-м маршруте:

  1. Перейдите в зону хостинга вашего домена, нажмите Создать записи
  2. Введите свой поддомен в поле «Имя записи». Например, если вы хотите создать sub.mywebsite.com, введите sub
  3. Выберите CNAME в качестве типа записи.
  4. Введите свой домен в поле Значение. Например, mywebsite.com
  5. Выберите значение TTL, подходящее для вашего варианта использования.
  6. Выберите простую маршрутизацию
  7. Нажмите Создать записи

Затем создайте виртуальный хост на вашем сервере Nginx:

server {
  server_name sub.mywebsite.com;
  location / {
    proxy_pass http://localhost:xxxx;
  }
}

На самом деле, вы можете создать столько, сколько захотите!

server {
  server_name sub1.mywebsite.com;
  location / {
    proxy_pass http://localhost:xxxx;
  }
}
server {
  server_name sub2.mywebsite.com;
  location / {
    proxy_pass http://localhost:xxxx;
  }
}

Вот и все!

person Cheng Qing Low    schedule 03.06.2021