«Невозможно разрешить хост <my_URL>: нет адреса, связанного с именем хоста» при попытке связаться с экспресс-сервером на моем экземпляре ec2 - PullRequest
0 голосов
/ 10 марта 2019

Приложение в стеке вопросов - экспресс, MongoDB, реагирует на родной язык, узел (и оси). Экспресс достигает тонны MongoDB в экземпляре ec2, но я не могу связаться с экспрессом из приложения (или почтальона).

Поэтому, когда я отправляю запрос POST в мой маршрут регистрации, в журналах Android Studio

"response: 'Unable to resolve host "api.my.url": No address associated with hostname'" 

Я пробовал как миллион разных вещей в настройках VPC, конфигурации DHCP, маршрутизации 54 файлов DNS, нескольких экземплярах и т. Д.

Также в моем случае при попытке запустить

curl -O https://bootstrap.pypa.io/get-pip.py

Там написано

curl(6) could not resolve host bootstrap.pypa.io....

похоже, что соединения не работают, но я не уверен, как это исправить. Я также подтвердил, что ссылка bootstrap.pypa.io работает в браузере (Chrome), поэтому для моего экземпляра определенно существуют проблемы с входящим / исходящим подключением.

Я пытался подключиться со своего реального телефона и эмулятора, оба работали со старым экземпляром ec2, который кто-то еще настраивал, поэтому кодовая база не должна была быть изменена, я в основном изолировал проблему с чем-то в настройке AWS, будь то DNS, VPC, сам экземпляр или что-то совершенно другое - вот где я в растерянности.

У меня включено разрешение DNS и имена хостов в моем VPC, CIDR IPv4 - 10.0.0.0/16 без IPv6, у меня эластичный IP-адрес, связанный с моим экземпляром ec2, я попытался создать открытую и закрытую зону для моего сгенерированного маршрута 53 домен и добавил частный IP и эластичный IP к записи A, а также URL-адрес типа ec2-13.23.243.us-east для NS, а также для общего пользования, для частного я только добавил эластичный IP к записи A. Экземпляр наиболее определенно работает. Я попытался создать входящую и исходящую конечную точку и связал ее с VPC. При этом используются 2 сгенерированных IP-адреса (по одному для каждой подсети), все работает в одном регионе. Мой экземпляр работает Ubuntu 18 LTS.

Я уверен, что это проблема с моей конфигурацией AWS, а не с кодом в приложении.

UPDATE: отключил брандмауэр, используя

ufw disable

RAN sudo nano /etc/resolv.conf

и обновленный порт до 1.1.1.1 & заменил группу безопасности на одну, чтобы разрешить все порты с любого IP (временно) & добавил DNS A Запись IP-адресов в корневой домен в дополнение к поддомену

это исправило невозможность разрешения ответа хоста и изменило его на

Не удалось подключиться к my.url.com/10.0.1.209:443

ОБНОВЛЕНИЕ 2:

Я решил начать с нуля, создал новый экземпляр со всеми теми же шагами, как описано выше, установил nginx и прикрепил новую политику для nginx и letsencrypt. Теперь переход к URL-адресам, настроенным в браузере, возвращает экран приветствия nginx.

ресурс, который помог больше всего: https://blog.cloudboost.io/setting-up-an-https-sever-with-node-amazon-ec2-nginx-and-lets-encrypt-46f869159469

Единственное, что осталось, - это новая ошибка 404 при попытке поразить мою конечную точку, что, как я подозреваю, связано с конфигурацией nginx. Оригинальная проблема решена, хотя!

ОБНОВЛЕНИЕ 3:

Я исправил мою конфигурацию файла nginx, теперь я могу достичь своих конечных точек в браузере, но если я попытаюсь из приложения, появится

_response: 'Имя хоста api.my.url не подтверждено: \ n сертификат: sha256 / 36bQKv2pd + / 7aog0gCHANGEDFVAtPEFrlALeam0 = \ n DN: CN = www.api.my.url \ n subjectAltNames: [www.api.my.url ]», _url: 'https://api.my.url/api/endpoint/signup',

...