EC2上的axios baseUrl,参考Ip地址
Axios baseUrl on EC2, reference Ip address
我想在 EC2 实例上部署一个应用程序,但面临 axios 调用的问题。但是,在开发环境中一切正常,因为在本地主机上。将此应用程序部署到 EC2 实例后,每当我按下停止按钮或网站上的任何其他内容时,我都会遇到 POST http://localhost:3000/stop 0 ()
问题。
整个应用程序都是用 next.js 开发的,我安装了 axios,它在开发过程中被配置为
import axios from 'axios'
const instance = axios.create({
baseURL: 'http://localhost:3000'
})
export default instance;
我知道我需要将此 baseURL 更改为 EC2 提供的 IP 地址,但我如何才能动态地这样做,以便 baseURL 直接获取当前的全局 IP 地址?
或者我应该如何解决这个问题?
您可以通过以下请求检索 EC2 元数据信息:http://169.254.169.254/latest/meta-data/ . You can read up on what you can get from querying that endpoint here : https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html#instancedata-data-retrieval。在您的情况下,您可以在上面的端点末尾添加 local-ipv4,您将获得 EC2 实例的私有 IPv4
我想在 EC2 实例上部署一个应用程序,但面临 axios 调用的问题。但是,在开发环境中一切正常,因为在本地主机上。将此应用程序部署到 EC2 实例后,每当我按下停止按钮或网站上的任何其他内容时,我都会遇到 POST http://localhost:3000/stop 0 ()
问题。
整个应用程序都是用 next.js 开发的,我安装了 axios,它在开发过程中被配置为
import axios from 'axios'
const instance = axios.create({
baseURL: 'http://localhost:3000'
})
export default instance;
我知道我需要将此 baseURL 更改为 EC2 提供的 IP 地址,但我如何才能动态地这样做,以便 baseURL 直接获取当前的全局 IP 地址?
或者我应该如何解决这个问题?
您可以通过以下请求检索 EC2 元数据信息:http://169.254.169.254/latest/meta-data/ . You can read up on what you can get from querying that endpoint here : https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html#instancedata-data-retrieval。在您的情况下,您可以在上面的端点末尾添加 local-ipv4,您将获得 EC2 实例的私有 IPv4