我想使用 Kong 作为我的 API 网关,在 Docker 容器中运行。每个请求都必须首先通过 NgInx 服务器,如果请求的 uri 与 example.com/api 匹配,则它必须生成在 Kong 内部注册的 api。
为了实现这一点,我使用以下命令将我的 API 添加到 Kong:
curl -i -X POST --url ipnumber:8001/apis -d 'name=my-api' -d `enter code here`'upstream_url=http://httpbin.org' -d 'hosts=example.com' -d 'uris=/api/my-api'
通过执行以下命令,我得到了正确的答案,所以我认为 Kong 工作正常。
curl -i -X GET --url ipnumber:8000/api/my-api --header 'Host: example.com'
我的 NgInx 配置如下所示:
upstream kong {
server 127.0.0.1:8000;
}
location /api {
proxy_pass: http://kong;
}
在我的主机文件中,我使用域 example.com 配置了 NgInx 服务器的 IP。
问题是:当我浏览到 example.com/api/my-api 甚至 example.com/my-api 时,结果是 NgInx 的 404 错误页面。
当我浏览到 ipnumber:8000/api/my-api 时,它会显示 Kong 的消息,说没有与给定值匹配的 api,这是正确的,因为主机名不是 example.com
我已经在寻找这个问题很长时间了,但我一直无法解决它。我也在寻找https://getkong.org/docs/0.10.x/configuration/#custom-nginx-configuration-embedding-kong但我不确定我是否必须这样做,因为我已经我自己的nginx配置。
提前感谢您的反馈。