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

时间:2018-10-14 22:14:00

标签: angular laravel ubuntu amazon-ec2 server

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

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

enter image description here

查看屏幕截图。两个端口都在监听,但我无法访问它们

编辑:安全组如下

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

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

自定义TCP规则TCP 8000 0.0.0.0/0

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

SSH TCP 22 0.0.0.0/0

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

1 个答案:

答案 0 :(得分:0)

您的问题是您的本地主机(127.0.0.1)正在为您的应用程序提供服务,尤其是您所需要的2个端口(8000和4200),如图所示: Arrows showing where your ports are open

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