Apache apisix路由配置



我是apache APISIX的新手,我想在apache APISIX网关中配置路由。首先,我遵循了APISIX官方文档。在那个文档中,他们使用了"httpbin。org:80"对于上游服务器。如果我设置在我的本地主机(127.0.0.1)上运行的上游新上游服务器,它对我不起作用。抛出一个坏网关错误(502)

如果有人知道解决这个问题的答案,请告诉我。

{
"methods": [
"GET"
],
"host": "example.com",
"uri": "/anything/*",
"upstream": {
"type": "roundrobin",
"nodes": {
"httpbin.org:80": 1
}
}
}

上面的路由配置对我来说是工作的。这里是API GATEWAY (http://127.0.0.1:9080/anything/*)将请求路由到http://httpbin.org:80/anything/*)

{
"methods": [
"GET"
],
"host": "example.com",
"uri": "/anything/*",
"upstream": {
"type": "roundrobin",
"nodes": {
"127.0.0.1:3001": 1
}
}
}

在上面的配置中,我已经配置了到服务的路由,该服务在我的本地机器上运行,端口是30001。现在,如果我调用API (http://127.0.0.1:9080/anything/*),它不会将我的请求路由到服务器(http://127.0.0.1:3001/anything/*),而是抛出一个糟糕的网关错误。

const http = require('http')
const hostname = '127.0.0.1'
const port = 3001
const server = http.createServer((req, res) => {
res.statusCode = 200
res.setHeader('Content-Type', 'text/plain')
res.end('Hello Worldn')
})
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`)
})

上面的代码是我的后端服务器,它作为上游服务器运行。

如果你知道调试坏网关异常的答案,请告诉我。

我遇到过同样的问题。

我假设您正在使用docker-compose或docker(在其官方文档中推荐使用)部署APISIX。

docker应用程序运行在名为apisix的docker桥接网络上。这就是APISIX无法访问本地主机应用程序的原因。

你能确认你首先使用哪个端口吗,因为你在描述中使用的是3001而不是30001;然后尝试直接访问它,而不是使用Gateway来代理它来检查它是否可访问。

最新更新