Kubernetes上Node.js容器中的Axios正在返回;Econrefuse127.0.0.1:30561;?

Kubernetes上Node.js容器中的Axios正在返回;Econrefuse127.0.0.1:30561;?,node.js,docker,kubernetes,axios,next.js,Node.js,Docker,Kubernetes,Axios,Next.js,完整错误消息:connect-econnrefered127.0.0.1:30561在TCPConnectWrap.afterConnect axios请求在Node.js环境(Next.js)中运行,这就是错误发生的地方。奇怪的是,axios请求在浏览器中运行时工作得非常好 调用axios的我的组件(在Node.js中运行): 从“axios”导入axios 从“下一个/路由器”导入路由器 从“React”导入React,{Component} 从“~/reducers”导入{initial

完整错误消息:
connect-econnrefered127.0.0.1:30561在TCPConnectWrap.afterConnect

axios请求在Node.js环境(Next.js)中运行,这就是错误发生的地方。奇怪的是,axios请求在浏览器中运行时工作得非常好

调用axios的我的组件(在Node.js中运行):

从“axios”导入axios
从“下一个/路由器”导入路由器
从“React”导入React,{Component}
从“~/reducers”导入{initializeStore}
从“~/actions/auth”导入{authenticate}
从“~/helpers/cookie”导入{getCookieByName}
const isServer=typeof window===“未定义”
常量下一个下一个商店
函数getOrCreateStore(初始状态){
//如果是服务器,则始终创建新存储,否则状态在请求之间共享
如果(isServer){
返回initializeStore(initialState)
}
//如果在客户端上不可用,则创建存储,并在窗口对象上设置它
如果(!window[\uuuuu NEXT\u REDUX\u STORE\uuuuu]){
窗口[\uuuu NEXT\u REDUX\u STORE\uuuuuu]=初始化存储(initialState)
}
返回窗口[\uuuuu下一个\uuuuuux\uuuu商店]
}
导出默认应用=>{
返回类AppWithRedux扩展组件{
静态异步getInitialProps(appContext){
const reduxStore=getOrCreateStore()
appContext.ctx.reduxStore=reduxStore
设appProps={}
if(type of App.getInitialProps==='function'){
appProps=等待App.getInitialProps(appContext)
}
const JWT=(isServer?getCookieByName('JWT',appContext.ctx.req.headers.cookie):getCookieByName('JWT',document.cookie))
const pathname=appContext.ctx.pathname
//设置axios baseURL
axios.defaults.baseURL=(isServer?`${appContext.ctx.req.headers['x-forwarded-proto']}://${appContext.ctx.req.headers.host}`:window.location.origin)
//如果用户有JWT
if(JWT){
axios.defaults.headers.common['Authorization']=`Bearer${JWT}`
//从API层获取用户
reduxStore.dispatch(authenticate())
} 
返回{
…appProps,
initialReduxState:reduxStore.getState()
}
}
建造师(道具){
超级(道具)
this.reduxStore=getOrCreateStore(props.initialReduxState)
}
render(){
返回
}
}

}
如果我理解正确,我会看到您在
lcoalhost(127.0.0.1)
上打开了一个套接字,因此它只能在本地访问。如果您希望从外部访问它,则需要将其绑定到
0.0.0.0
表示“所有接口”。 收听
0.0.0.0
意味着从任何可以访问此计算机的地方收听。例如,从这台计算机,从本地网络或从互联网。在127.0.0.1上收听意味着只能从这台计算机上收听


如果有帮助,请告诉我。或者如果我误解了你

我试图调用的axios url在容器外部是
localhost:30561
,但axios在容器内部调用
localhost
。我可以调用以下
0.0.0.0:30561
?这是否意味着它将调用我的机器的本地主机而不是容器的本地主机?我不确定我是否理解你的意思。您的应用程序正在通过呼叫的端口连接到自身(?)<代码>30561来自
节点端口
范围。因此,您尝试通过浏览器连接到
127.0.0.1:30561
,但它会失败,因为它在容器中的不同端口上运行。这有点令人困惑。