Как подключить веб-страницу за экземпляром AWS EC2 в частной подсети в AWS VPC

У меня есть AWS VPC с 1 публичной и 1 частной подсетями. Я разместил по 1 экземпляру EC2 в каждой из подсетей. Оба экземпляра EC2 имеют http-сервер Apache, работающий на порту 80, и имеют HTML-страницу. Скажем, в Page1.html в экземпляре Public EC2 и Page2.html в экземпляре Private EC2. Page1.html в общедоступном экземпляре EC2 имеет URL-адрес, указывающий на страницу Page2.html в частном экземпляре EC2.
Все группы безопасности открыты для всего трафика, а шлюзу NAT назначается эластичный IP-адрес.

Когда я помещаю (http:// общедоступный IP-адрес: 80/Page1.html) в браузер, я получаю отображение страницы Page1.html. Но когда я нажимаю ссылку на Page1.html, которая указывает на Page2.html в экземпляре Private EC2, Page2.html не отображается. Время ожидания запроса истекает.

Есть ли способ заставить эти 2 сервера Apache общаться друг с другом?

Возможно, стоит отметить, что:

i) Я могу пропинговать (частный IP-адрес) из общедоступного экземпляра.

ii) Из общедоступного экземпляра я могу запустить nc -vz (частный IP) 80 и получить ответ в виде Подключение к порту (частный IP) 80 [tcp/http] выполнено успешно! >

iii) Из общедоступного экземпляра выполнение команды curl (частный ip) 80 извлекает скрипт/дамп HTML, но показывает ошибку curl: (7) Не удалось подключиться к серверу также.


person Satrajit    schedule 06.07.2020    source источник


Ответы (1)


Когда вы щелкаете ссылку на веб-странице, эти два веб-сервера не взаимодействуют друг с другом, ваш веб-браузер взаимодействует напрямую с обоими серверами. В этом сценарии у вас не может быть одного из серверов в частной подсети.

person Mark B    schedule 06.07.2020