Я новичок в работе с AWS, поэтому вполне возможно, что мне не хватает чего-то простого, но вот в чем проблема. Я следовал руководству по созданию экземпляра EC2 (t2.micro), и я настроил группу безопасности, чтобы разрешить HTTP (порт 80) из любого источника, но порт не открыт.
Я могу без проблем подключиться к серверу по ssh, и когда я использую приложение для сканирования портов (например, http://ping.eu/port-chk/), Я вижу, что порт 22 открыт, а порт 80 - нет. Когда я пытаюсь wget http://localhost
, Я получил:
Connecting to localhost (localhost)|127.0.0.1|:80... failed: Connection refused.
Если это поможет, вот результаты sudo netstat -plunta | grep LISTEN
:
tcp 0 0 0.0.0.0:55171 0.0.0.0:* LISTEN 2334/rpc.statd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2313/rpcbind
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2500/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2530/sendmail
tcp 0 0 :::111 :::* LISTEN 2313/rpcbind
tcp 0 0 :::22 :::* LISTEN 2500/sshd
tcp 0 0 :::56605 :::* LISTEN 2334/rpc.statd
РЕДАКТИРОВАТЬ:
Я использую этот экземпляр EC2 для создания контейнера из dockerhub. Я могу построить контейнер локально с помощью docker run -p 8000:8000 -t hsdetect
, поэтому я поместил его в dockerhub и попытался подключиться к нему через порт 80, используя следующее: docker run -d -p 80:8000 jss367/hsdetect:new_port python app.py
Открытие порта 80 в вашей группе безопасности не создает процесс в вашем экземпляре EC2, прослушивающий этот порт. Вам необходимо установить приложение, такое как Apache, для прослушивания порта 80.
Предполагая, что вы хотите, чтобы в вашем экземпляре работал веб-сервер, установите Apache.
Примеры команд:
sudo yum update -y
sudo yum install -y httpd24
sudo service httpd start
sudo chkconfig httpd on
Это даст вам простую установку Apache по умолчанию.
Примечание. Я предполагаю, что ваш экземпляр - Amazon Linux. Команды могут быть другими для других дистрибутивов.