При развертывании приложения Go в AWS ec2 в соединении отказано - PullRequest
0 голосов
/ 09 мая 2020

У меня есть скомпилированный проект Go, который я хочу развернуть на экземпляре AWS EC2. Я просто загружаю приложение и запускаю ./application на удаленном сервере.

В терминале приложение работает и говорит, что он слушает localhost:3000.

Running app

Я уже добавил порт 3000 в группу безопасности.

Однако, когда я пытался получить к нему доступ в моем браузере, используя <public-ip>:3000, он всегда показывает отказ в соединении, независимо от того, запустил я приложение или нет.

refused connect

Я попытался запустить приложение локально, оно работает.

Так это потому, что я неправильно его развернул?

1 Ответ

2 голосов
/ 09 мая 2020

Немного сложно помочь вам из-за отсутствия общего кода.

Некоторые причины отказа в соединении:

  1. Ваше приложение прослушивает только localhost: 3000
  2. Группа безопасности EC2 не предоставляет порт 3000

Как исправить:

  1. Большинство приложений определяют адрес хоста в файле конфигурации или переменных env. Если у вас есть доступ для его изменения, измените его с localhost: 3000 на 0.0.0.0:3000, чтобы принимать соединение со всех IP, или на your_ec2_public_ip: 3000
  2. Если адрес хоста жестко запрограммирован и у вас есть доступ к коду, измените код, указанный выше
  3. Если у вас нет доступа к конфигурации или коду для изменения адреса хоста, добавьте обратный прокси-сервер для маршрутизации входящего вызова на localhost: 3000. Это хорошая ссылка об использовании Nginx в качестве обратного прокси https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/
  4. Убедитесь, что группа безопасности EC2, разрешающая входящее соединение для указанного порта, в данном случае 3000, если вам удастся направить входящие на your_ip: 3000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...