无法访问在 ubuntu 服务器上的端口上运行的项目

Sye*_*avi 5 ubuntu amazon-ec2 laravel server angular

我在本地主机上创建了一个项目。前端是 Angular,在端口 4200 上运行,后端是 Laravel,在端口 8000 上运行。在我的本地主机上。我运行后端php artisan serve,它开始在 8000 上运行,对于前端,我运行ng serve它,它在端口 4200 上为应用程序提供服务。现在我已经使用 ubuntu 16.04 在 EC2 实例上部署了该应用程序。在其上安装了 LEMP 堆栈。克隆我的项目,运行命令来运行前端和后端应用程序。但是当我在浏览器中输入IP:端口来访问应用程序时,它显示This site can\xe2\x80\x99t be reached 18.***.7.** refused to connect。运行这两个命令后,终端显示它们正在运行。

\n\n

我还用来sudo lsof -i -P -n | grep LISTEN查看进程是否正在运行,它显示两个进程都在 4200 和 8000 上运行,但我仍然无法访问它们。

\n\n

在此输入图像描述

\n\n

请参阅屏幕截图。两个端口都在侦听,但我无法访问它们

\n\n

编辑:安全组如下

\n\n

全部 | 交通全部 | 全部 | 0.0.0.0/0

\n\n

所有流量 全部 全部 ::/0

\n\n

自定义 TCP 规则 TCP 8000 0.0.0.0/0

\n\n

自定义 TCP 规则 TCP 8000 ::/0

\n\n

SSH TCP 22 0.0.0.0/0

\n\n

注意:如果我只是在浏览器中输入服务器的 IP 地址,它会显示 nginx 欢迎页面,但 IP:PORT 会出现此错误

\n

The*_*rIV 1

您的问题是您的本地主机 (127.0.0.1) 正在为您的应用程序提供服务,特别是您需要的 2 个端口(8000 和 4200),如图所示: 显示端口开放位置的箭头

解决方案是在 IPv4/IPv6 接口上为您的应用程序提供服务,而不是环回/本地主机,因此不要在 Web 服务器配置中使用 Localhost:4200;而是使用 0.0.0.0:4200 (监听所有接口)或 [::]:80 ,以便可以在端口 80 上访问它(尽管它已被贬值,因为所有黑客首先攻击标准 http/https 端口,即端口 80 :所以坚持使用自定义/随机端口)。有关配置网络服务器的更多信息,请参阅此链接:https://www.atlantic.net/hipaa-company-cloud-storage/how-to-install-lemp-stack-ubuntu-16-04/