作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 auth_request模块检查是否允许用户访问某个文件。用户在 /my/download/uri/<File ID>
发布请求.我希望授权请求发布在 auth_service:9999/files/<File ID>
.我的配置的相关部分如下:
location /my/download/uri {
auth_request /auth/files/$uri;
alias /my/file/directory;
}
location /auth {
internal;
proxy_pass http://auth_service:9999/;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
}
/files/$uri
;变量未放置。我尝试通过
set
准备好 URI变量第一,但无济于事。如何让 nginx 正确引导授权请求?
X-Original-URI
将原始请求包含在授权请求的 header 中。但是,这意味着我必须对授权服务器上的完整 URI 进行额外处理才能获取相关数据,如果有一种方法可以首先将授权请求发布到正确的 URI,我宁愿不这样做。)
最佳答案
您不能在 auth_request 中使用变量,这显然是 nginx 的设计选择
https://trac.nginx.org/nginx/ticket/761
我通过反复试验想出了这个。我无法将 $uri 放入变量中,不知道为什么。
location ~ /my/download/uri/(.*) {
set $key $1
auth_request /auth;
alias /my/file/directory;
}
location /auth {
internal;
proxy_pass http://auth_service:9999/$key;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
}
关于nginx - 如何将 auth_request 发送到 nginx 中的可变 URI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60989302/
我是一名优秀的程序员,十分优秀!