Amazon web services 在AWS ec2中部署Go应用程序时连接被拒绝

Amazon web services 在AWS ec2中部署Go应用程序时连接被拒绝,amazon-web-services,go,devops,Amazon Web Services,Go,Devops,我有一个已编译的Go项目,我想将其部署到AWS EC2实例。我只需上传应用程序并在远程服务器上运行/application 在终端中,应用程序正在运行,并说他正在收听localhost:3000 我已经将3000端口添加到安全组中 但是,当我试图在浏览器中使用:3000访问它时,无论我是否运行该应用程序,它总是显示连接被拒绝 我试着在本地运行这个应用程序,它确实有效 这是因为我部署不正确吗?因为没有共享代码,所以帮助您有点困难 您被拒绝连接的一些原因: 您的应用程序只侦听localhost:

我有一个已编译的Go项目,我想将其部署到AWS EC2实例。我只需上传应用程序并在远程服务器上运行
/application

在终端中,应用程序正在运行,并说他正在收听
localhost:3000

我已经将
3000
端口添加到安全组中

但是,当我试图在浏览器中使用
:3000
访问它时,无论我是否运行该应用程序,它总是显示连接被拒绝

我试着在本地运行这个应用程序,它确实有效


这是因为我部署不正确吗?

因为没有共享代码,所以帮助您有点困难

您被拒绝连接的一些原因:

  • 您的应用程序只侦听localhost:3000
  • EC2安全组不公开端口3000
  • 如何修复:

  • 大多数应用程序都在配置文件或环境变量上定义主机地址。如果您有权更改它,请将其从localhost:3000更改为0.0.0.0:3000,以接受来自所有IP或到您的\u ec2\u public\u IP:3000的连接
  • 如果主机地址是硬编码的,并且您有权访问代码,请根据上面的更改代码
  • 如果您无权访问配置或代码来更改主机地址,请添加反向代理以将传入呼叫路由到localhost:3000。这是一个关于使用Nginx作为反向代理的好链接
  • 如果您设法将传入路由到您的_ip:3000,请确保允许指定端口的入站连接的EC2安全组(在本例中)为3000

  • 由于没有共享代码,帮助您有点困难

    您被拒绝连接的一些原因:

  • 您的应用程序只侦听localhost:3000
  • EC2安全组不公开端口3000
  • 如何修复:

  • 大多数应用程序都在配置文件或环境变量上定义主机地址。如果您有权更改它,请将其从localhost:3000更改为0.0.0.0:3000,以接受来自所有IP或到您的\u ec2\u public\u IP:3000的连接
  • 如果主机地址是硬编码的,并且您有权访问代码,请根据上面的更改代码
  • 如果您无权访问配置或代码来更改主机地址,请添加反向代理以将传入呼叫路由到localhost:3000。这是一个关于使用Nginx作为反向代理的好链接
  • 如果您设法将传入路由到您的_ip:3000,请确保允许指定端口的入站连接的EC2安全组(在本例中)为3000

  • 您声明应用程序正在本地主机上侦听。应用程序还必须侦听公共地址。还要确保VPC的NAC在端口3000的入站和出站中具有开放规则。请尝试:
    netstat-tulpn
    查看侦听的地址。如果您看到
    127.0.0.1:3000
    ,它会监听您的内部网络,您必须更改为收听
    0.0.0.0:3000
    (这就是公共广播的意思!!!)。您还需要您的操作系统(可能是Amazon Linux)没有防火墙阻止
    0.0.0.0:3000
    (默认情况下,防火墙不会阻止它,但这取决于使用的AMI)。(例如,作为建议,您可以在CLI中使用
    lynx
    浏览器进行验证,或从同一VPC中的另一台机器进行验证)。之后,您将使用安全组/NACL/VPC等等。您将声明应用程序正在本地主机上侦听。应用程序还必须侦听公共地址。还要确保VPC的NAC在端口3000的入站和出站中具有开放规则。请尝试:
    netstat-tulpn
    查看侦听的地址。如果您看到
    127.0.0.1:3000
    ,它会监听您的内部网络,您必须更改为收听
    0.0.0.0:3000
    (这就是公共广播的意思!!!)。您还需要您的操作系统(可能是Amazon Linux)没有防火墙阻止
    0.0.0.0:3000
    (默认情况下,防火墙不会阻止它,但这取决于使用的AMI)。(例如,作为建议,您可以在CLI中使用
    lynx
    浏览器进行验证,或从同一VPC中的另一台机器进行验证)。之后,您可以使用安全组/NACL/VPC等等。