gpt4 book ai didi

nginx - 如何在 nginx 的 auth_request 模块中使用外部 URI

转载 作者:行者123 更新时间:2023-12-04 00:36:02 26 4
gpt4 key购买 nike

我正在尝试使用 nginxngx_http_auth_request_module以这种方式:

server {

location / {
auth_request http://external.url;
proxy_pass http://protected.resource;
}
}

它不起作用,错误是:
2017/02/21 02:45:36 [error] 17917#0: *17 open() "/usr/local/htmlhttp://external.url" failed (2: No such file or directory), ...

或以这种方式与 named location :
server {

location / {
auth_request @auth;
proxy_pass http://protected.resource;
}

location @auth {
proxy_pass http://external.url;
}
}

在这种情况下,错误几乎相同:
2017/02/22 03:13:25 [error] 25476#0: *34 open() "/usr/local/html@auth" failed (2: No such file or directory), client: 127.0.0.1, server: , request: "GET / HTTP/1.1", subrequest: "@auth", host: "127.0.0.1"

我知道有这样的方法:
server {

location / {
auth_request /_auth_check;
proxy_pass http://protected.resource;
}

location /_auth_check {
internal;
proxy_pass http://external.url;
}
}

但在这种情况下, http://protected.resource无法使用 /_auth_check小路。

有没有办法使用外部 URI作为 auth_request 的参数指令不与 http://protected.resource 重叠路由?

如果不是,为什么?
查找 auth_request 看起来有点奇怪的 URI 通过静态文件 ( /usr/local/html )。

最佳答案

有一个鲜为人知的事实是,您不必从 / 开始位置。或 @ .

所以这会起作用:

location / {
auth_request .auth;
proxy_pass http://protected.resource;
}

location .auth {
internal;
proxy_pass http://external.url/auth;
# you must use path part here ^
# otherwise it would be invalid request to external.url
}

关于nginx - 如何在 nginx 的 auth_request 模块中使用外部 URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42380402/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com