kubernetes - NGINX 入口 auth-url 返回 404 但端点存在
问题描述
添加注释:
annotations:
nginx.ingress.kubernetes.io/auth-url: http://my-auth-service.my-api.svc.cluster.local:8080
...我的入口规则导致入口控制器的 500 响应(入口在没有它的情况下工作)。
该服务存在,我可以 ssh 进入入口控制器并 CURL 它,得到响应:
curl http://my-auth-service.my-api.svc.cluster.local:8080
产生 200 响应。
我检查了入口控制器日志,但它说服务返回了一个404
. 如果我可以 CURL 到同一个 URL,为什么它会返回一个404
?
2019/07/01 20:26:11 [error] 558#558: *443367 auth request unexpected status: 404 while sending to client, client: 192.168.65.3, server: localhost, request: "GET /mocks HTTP/1.1", host: "localhost"
我不确定要检查什么来确定问题。
解决方案
FWIW,对于未来的读者 - 我遇到了同样的问题,在查看我的身份验证服务日志后,注意到 nginx 入口的请求将 /_external-auth-xxxxxx 路径附加到请求 url。
这是入口控制器在源代码中执行此操作的位置:
以及我如何在自己的身份验证服务(Elixir/Phoenix 路线)中处理它:
get "/_external-auth*encoded_nginx_auth_url", TokenController, :index
推荐阅读
- amazon-web-services - 操作执行失败 AccessDenied。用户无权调用 ssm:GetParameters
- reactjs - 在另一个选择器中使用选择器参数
- python - 下面的代码不检查现有的用户名
- apache - Apache:同一服务器上的两个域具有不同的端口
- python - 如何使用张量实现平衡错误率?
- laravel - Laravel Eloquent Query 获取组中每个 id 的 2 条记录
- javascript - 在移动版本上使用网格布置项目的中心 div
- python - AWS Batch 作业未扩展到最大 Vcpus
- python - 其他语言的 Gensim 总结
- kdb - 什么可能导致 KDB 中展开表的 init 类型不匹配?