Node.js 带有任意端口的AWS本地主机

Node.js 带有任意端口的AWS本地主机,node.js,api,amazon-web-services,amazon-ec2,Node.js,Api,Amazon Web Services,Amazon Ec2,我有一个运行apache服务器的EC2实例,我可以很好地访问它。然而,我也有三个api,我在同一个EC2实例上运行。它们在3007等端口上运行,我已经允许访问该端口,我的前端尝试将localhost与这些相关端口一起使用。 现在,当我启动这些API时,它们可以很好地连接到我的外部资源,例如数据库,但是我的前端无法连接到它们。不必使用AWS api gateway之类的附加服务,为什么它在连接时会出现问题?我认为您的问题是因为您调用的是localhost而不是EC2 IP/域名 当您调用local

我有一个运行apache服务器的EC2实例,我可以很好地访问它。然而,我也有三个api,我在同一个EC2实例上运行。它们在3007等端口上运行,我已经允许访问该端口,我的前端尝试将localhost与这些相关端口一起使用。
现在,当我启动这些API时,它们可以很好地连接到我的外部资源,例如数据库,但是我的前端无法连接到它们。不必使用AWS api gateway之类的附加服务,为什么它在连接时会出现问题?

我认为您的问题是因为您调用的是localhost而不是EC2 IP/域名

当您调用localhost时,这意味着无论您在哪台计算机上。对于后端,建议使用localhost,因为您在同一台计算机上。但是在前端,您的网站尝试转到localhost:3007,这是客户端计算机。您需要将其更改为ec2-.compute-1.amazonaws.com或您的ec2公共IP

你可以在这里找到:


您是否允许所有IP从端口3007进行传入/传出访问?检查您的安全组。嘿@samyoknaper,谢谢您的回复。是的,我确实允许作为定制TCP规则访问前端上的所有端口,您是在调用localhost还是您的EC2 ip?在前端,我正在调用localhost,并且前端正在同一个EC2实例上运行@samyoknep,而且它似乎正在工作,因为我搞砸了linux系统,而我不是linux大师,所以我不得不创建一个新的EC2,并开始传输东西。我得到了一个api的结束,并启动了它。通过使用Postman,我能够通过EC2IP与api连接,因此我假设,一旦我设置好所有其他设置,它就会工作。感谢@Samyok NepalSorry这么晚才回复您,但非常感谢!