如何在 NGINX 中透過 IP 位址或使用者代理程式在基本驗證中設定旁路。如果我這樣設定:
map $http_user_agent $auth {
default on;
"~curl" "off";
}
server {
.......
satisfy any;
allow 1.2.3.4;
allow 5.6.7.8;
deny all;
auth_basic $auth;
auth_basic_user_file /etc/nginx/.htpasswd;
.....
}
然後,當我使用用戶代理curl從白名單以外的地址輸入時,我得到403。
答案1
禁用auth_basic
可能會將其從現實中刪除,satisfy
而不是使其成為現實。
您可以透過新增另一個授權方案來實現您正在嘗試的目標,授權請求。
例如:
map $http_user_agent $auth {
"~curl" 1;
}
server {
...
satisfy any;
allow 1.2.3.4;
allow 5.6.7.8;
deny all;
auth_basic "Password protected";
auth_basic_user_file /etc/nginx/.htpasswd;
auth_request /auth;
location = /auth {
internal;
if ($auth) { return 200; }
return 401;
}
...
}