AWS ELB возвращает 404 за https://domain_name:8000, но доступно через public_ip: 8000 - PullRequest
0 голосов
/ 27 мая 2019

Я новичок в развертывании веб-приложений на AWS, и я полагаю, что у меня есть проблема, аналогичная AWS, перенаправляющий порт 8000 от elb до порта 8000 EC2 , где у меня запущен интерфейс activjs и golang api. на aws ec2, и API-интерфейс golang работает на порту 8000, который доступен через мой public_ip: 8000, и выдает мне сообщения о том, что мой API-интерфейс golang работает, когда я получаю доступ к public_ip: 8000. Я создал public_ip, используя Elastic IPs.

Я использовал балансировщики нагрузки для получения HTTPS, поскольку у меня есть определенные функции, которые работают только с HTTPS. Однако, когда я использую свой https://domain_name:8000 для отправки запросов своему собственному API, он говорит, что его там нет, и выдает мне 404 ошибки, когда я использовал балансировщик нагрузки приложения.

В моем доменном имени используются серверы имен AWS Route 53 и AWS, и у меня не должно быть проблем, поскольку меня перенаправляют на обычный домен. Я также добавил запись A, указывающую на мой балансировщик нагрузки.

Я проверил используемую группу безопасности и открыл порты для своего IP-адреса.

Проверка статуса моего экземпляра: Instance Status checks

Ниже описано, как я настроил целевую группу для балансировки нагрузки приложений: Target groups а для своих слушателей я использовал HTTP 80, HTTPS 443 и HTTPS 8000 для перенаправления в целевую группу.

Я пытался использовать классические балансировщики нагрузки, как указано в ссылке, но они все время ожидания, когда я использую мое имя_домена.

Кто-нибудь знает, как лучше подключиться или лучше структурировать мой веб-интерфейсactjs и golang на AWS, для которого могут потребоваться другие открытые порты для доступа к API.

Конфигурация переадресации портов балансировки нагрузки My Classic: classic load balancer port

РЕДАКТИРОВАТЬ: я заметил, что проблема может быть моей целевой группой, так как он говорит, что порт 8000 неработоспособен и что время запроса истекло

1 Ответ

1 голос
/ 28 мая 2019

Потребовалось вечно, чтобы выяснить порты, и ни один из поисков google или документации AWS не помог, поэтому я поместил свой интерфейс activjs в один экземпляр EC2, работающий на порту 80, и мой API server / golang в другой экземпляр EC2, работающий на порту 80, а затем настройте Application Load Balancer для пересылки в целевую группу с внешним интерфейсом, если вызывается HTTP: 80 или HTTPS: 443, и для пересылки в целевую группу с помощью API golang, если вызывается HTTPS: 8000.

Убедитесь, что экземпляры находятся в той же зоне доступности, что и балансировщик нагрузки, иначе они не будут работать должным образом, а также убедитесь, что все исправно.

...