问:我希望能够仅对那些在请求中包含特定标头的请求启用基本身份验证。
用例:仅对请求通过 LB 的某些客户端进行身份验证(并匹配 LB 设置的标头)。
我尝试使用 IF 指令,但没有成功。任何人都有一个关于如何完成此操作的小型配置示例?
Xav*_*cas 11
根据auth_basic
指令的文档,您不能在if
块中使用该指令,但可以使用变量作为值。
所以使用地图来测试特定条件并使用结果变量。
map $http_<header_name> $authentication {
default "off";
"~^" "my_realm";
}
server {
...
location /foo {
auth_basic $authentication;
auth_basic_user_file /path/to/htpasswd/file;
...
}
}
Run Code Online (Sandbox Code Playgroud)
<header_name>
必须使用小写字母和下划线代替破折号将模式替换为标题的名称(例如,My-Header
变成$http_my_header
)
归档时间: |
|
查看次数: |
3428 次 |
最近记录: |