在没有固定IP的本地连接中从浏览器进行API调用

问题描述 投票:0回答:1

我正在具有两个不同网络接口的设备中运行Nginx Web服务器。我想在端口80上提供一个React App,该API在同一设备的不同端口上对API服务器进行API调用。我已经将Nginx配置为侦听端口80,并且可以在两个接口上正确服务React应用。但是,进行API调用比较棘手。

如果我只有一个具有固定IP的接口,则可以将该IP设置为React APP中的API服务器地址,一切都很好。但是,当具有多个接口时,React App不会使用哪个接口为其提供服务。结果,i t不知道哪个是API服务器的IP。

此问题对于仅具有一个接口但其IP急剧变化的设备也有效。 Nginx不管使用哪个IP都可以正确提供网页,但是React App需要知道IP地址才能进行API调用。

我知道一种常见的解决方案是将域分配给API服务器,但在我的情况下,仅在本地网络上进行与设备的连接。

我考虑过的解决方案:

  1. 在两个接口上都有固定的IP,并且让nginx为每个接口提供不同的React App。除了API服务器地址参数外,这些应用程序将相同。这可能是一个矫kill过正。
  2. 在浏览器中运行时,要求用户在React App上输入IP。这不是真正的用户友好。

我实际上想要的是React App通过它知道已提供IP的方法,或者是Nginx使用根据设备IP进行配置的Web服务Web的方法。有没有像这样的解决方案?

reactjs nginx ip webserver
1个回答
0
投票

由于React应用程序在本地网络中提供服务,并且不使用域,因此在浏览器中使用设备IP作为href对其进行请求。结果,该应用可以使用javascript方法window.location.href获取设备的IP地址,并将其用作API服务器地址。

© www.soinside.com 2019 - 2024. All rights reserved.