可能这是一个虚拟的问题,但是我试图弄清楚在虚构的场景中是否有解决这个问题的可能性:
我有一个由两台机器组成的安全环境。在主机A中,我们有后端(Flask api),在主机B中,我们有Angular应用程序。只有主机B才会公开其端口4200,以便可以从世界(或可能是从确定数量的允许IP)访问Angular。
有什么办法可以做到这一点?因为只能从主机B访问主机A的IP。而且,当从外部主机执行Angular应用程序时,它对机器A的IP的请求无法执行,因为它不能到达主机。
谢谢。
注意:
Angular中的请求是通过来自'@ angular / common / http'的HttpClien完成的。
答案 0 :(得分:1)
由于Angular是提供给客户端的,因此客户端需要与可访问API的服务器联系。这意味着主机B(不要公开端口4200,不要在实际生产中使用ng serve
!)只能服务Angular应用,并且API无法访问。
您可以进行设置,以便主机B是主机A的代理,然后它将接受API的传入流量并在后台进行中继。 Nginx
或Apache
都可以reverse proxy
的身份为您完成此操作。
但是除此之外,无法连接到实际网络之外的网络上客户端无法访问的主机。