我在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上运行,但仍然无法访问它们。
查看屏幕截图。两个端口都在监听,但我无法访问它们
编辑:安全组如下
全部|交通全部|全部| 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会显示此错误
答案 0 :(得分:0)
您的问题是您的本地主机(127.0.0.1)正在为您的应用程序提供服务,尤其是您所需要的2个端口(8000和4200),如图所示:
该解决方案是在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/