我正在向我的EC2实例发出GET请求,但是我收到以下错误:
80: Connection refused
这些是我的实例的安全规则:
Ports Protocol Source launch-wizard-1
80 tcp 0.0.0.0/0 ✔
22 tcp 177.32.53.207/32 ✔
这些规则有什么问题?为什么我不能访问端口80?
EDIT 此网址中为I attached my apache conf file (/etc/apache2/apache2.conf),因为它太大而无法在此处发布所有代码。
EDIT2 当我运行netstat -ntlp | grep LISTEN 我明白了:
(No info could be read for "-p": geteuid()=1000 but you should be root.)
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN -
tcp6 0 0 :::80 :::* LISTEN -
tcp6 0 0 :::22 :::* LISTEN
答案 0 :(得分:0)
您的连接请求的来源是什么?您是尝试从Amazon外部还是从同一可用区域中的差异EC2实例访问您的实例?您是否提供IP地址或DNS名称作为连接代码的参数?
请记住,AWS EC2使用SDN(软件定义网络),它不像传统的TCP / IP路由那样工作,您可能期望在裸机系统上使用Linux或其他操作系统(甚至是在使用更传统网络的虚拟机上。)
最终,您可能希望分配"弹性IP"来自AWS的(EIP)并将其绑定到您的Web服务器实例。然后将您的请求路由到该IP地址。 (通常,您也可以创建DNS条目,可能通过亚马逊" Route53"服务使用名称而不是地址)。
可以从网络内部和外部访问您的实例。但是你必须使用亚马逊生成的DNS名称才能这样做,因为它们使用水平分割,你的客户端将获得正确的(内部或外部)IP地址。
此外,您还必须考虑VPC(虚拟私有云)网络上的安全设置以及您已应用于实例的安全设置。