可以在Angular中向仅对主机使用Angular应用程序的主机可访问的url发出http请求。

时间:2019-06-04 15:56:48

标签: angular http

可能这是一个虚拟的问题,但是我试图弄清楚在虚构的场景中是否有解决这个问题的可能性:

我有一个由两台机器组成的安全环境。在主机A中,我们有后端(Flask api),在主机B中,我们有Angular应用程序。只有主机B才会公开其端口4200,以便可以从世界(或可能是从确定数量的允许IP)访问Angular。

有什么办法可以做到这一点?因为只能从主机B访问主机A的IP。而且,当从外部主机执行Angular应用程序时,它对机器A的IP的请求无法执行,因为它不能到达主机。

谢谢。

注意:

Angular中的请求是通过来自'@ angular / common / http'的HttpClien完成的。

1 个答案:

答案 0 :(得分:1)

由于Angular是提供给客户端的,因此客户端需要与可访问API的服务器联系。这意味着主机B(不要公开端口4200,不要在实际生产中使用ng serve!)只能服务Angular应用,并且API无法访问。

您可以进行设置,以便主机B是主机A的代理,然后它将接受API的传入流量并在后台进行中继。 NginxApache都可以reverse proxy的身份为您完成此操作。

但是除此之外,无法连接到实际网络之外的网络上客户端无法访问的主机。