以下案例:
我需要配置我的 nginx,以便某些 IP 可以访问它,或者您需要它的证书。
server {
. . .
ssl_verify_client optional;
location /admin {
allow XXX.XXX.XXX.XXX;
if ($ssl_client_verify != SUCCESS) {
return 403;
}
deny all;
}
}
适用于 IP,但是当我想在位置内添加证书 if 条件时,我当然会收到 403 错误,因为我的具有 IP 的工作站没有证书。有什么办法可以得到 X OR Y 吗?
谢谢!
编辑:
以一种肮脏的方式解决了它......
location /admin {
set $var_cert 0;
if ($ssl_client_verify = SUCCESS) {
set $var_cert 1;
}
if ($remote_addr = XXX.XXX.XXX.XXX) {
set $var_cert 1;
}
if ($remote_addr = XXX.XXX.XXX.XXY) {
set $var_cert 1;
}
if ($var_cert = 0){
return 403;
}
proxy_pass http://172.16.0.54/admin;
}
嗯,它有效。