我有一个 nginx 代理重定向在 docker 容器内工作,将所有请求重定向到正确的服务。我对 basic_auth 有问题,因为它无法按预期工作。下面是主服务器代理位置指向 maildev 容器的配置。
location /backend_api_v2/swagger.json {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/conf.d/nginx.htpasswd;
proxy_pass http://${BACKEND_HOST_PORT}/backendAPI/swagger.json;
proxy_redirect default;
}
如果授权被删除,则该请求确实会通过并正确显示 swagger 定义。其他有趣的是,返回 401 的不是 nginx,而是 undertow 领域的安全性,这更奇怪,因为该端点不需要身份验证。
任何帮助将不胜感激07
似乎将 populate Authorization 标头传递给 api 容器使其尝试使用 Undertow 的凭据,但该凭据无效(即使它是开放端点)。
我已经通过将授权标头设置为空来解决它的问题。下面是修改后的配置以使其正常工作。
location /backend_api_v2/swagger.json {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/conf.d/nginx.htpasswd;
proxy_set_header Authorization "";
proxy_pass http://${BACKEND_HOST_PORT}/backendAPI/swagger.json;
}