Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nginx:跳过基于IP或请求头的HTTP基本身份验证_Nginx - Fatal编程技术网

Nginx:跳过基于IP或请求头的HTTP基本身份验证

Nginx:跳过基于IP或请求头的HTTP基本身份验证,nginx,Nginx,nginx.conf中的http块包含以下内容: auth_basic $development_exceptions; 在包含的文件中,geo模块用于设置变量: geo $development_exceptions { default "Not allowed."; 1.2.3.4 "off"; } map模块在同一包含文件中使用用户代理变量: map $http_user_agent $development_exceptions { default "

nginx.conf
中的
http
块包含以下内容:

auth_basic $development_exceptions;
在包含的文件中,
geo
模块用于设置变量:

geo $development_exceptions {
     default "Not allowed.";

    1.2.3.4 "off";
}
map
模块在同一包含文件中使用用户代理变量:

map $http_user_agent $development_exceptions  { 
    default "Not allowed.";

    ~*(header-text) "off";
}
然而,developmentexceptions变量的设置是相互竞争的,因此当应用第二个代码时,第一个代码停止执行任何操作


如何将这两种策略结合起来?在这种情况下,可能无法更改
nginx.conf

,那么您应该尝试下面的方法

geo $development_exceptions_geo {
    default "Not allowed.";
    1.2.3.4 "off";
}

map $http_user_agent $development_exceptions_agent  { 
    default "Not allowed.";

    ~*(header-text) "off";
}
现在,如果您想使用
条件,则可以执行以下操作

map $development_exceptions_agent$development_exceptions_geo $development_exceptions {
    ~off "off";
    default "Not allowed.";
}
map $development_exceptions_agent$development_exceptions_geo $development_exceptions {
    ~offoff "off";
    default "Not allowed.";
}
如果需要
条件,则可以执行以下操作

map $development_exceptions_agent$development_exceptions_geo $development_exceptions {
    ~off "off";
    default "Not allowed.";
}
map $development_exceptions_agent$development_exceptions_geo $development_exceptions {
    ~offoff "off";
    default "Not allowed.";
}

因此,您需要一个解决方案,而不希望更改控制发生什么的
nginx.conf
?主机上的结构设置为可以控制include,但不能控制
nginx.conf
。如果唯一的方法是通过
nginx.conf
,那么我也对该解决方案感兴趣,因为我可以提出请求。您发布的部分是否可以编辑以编制解决方案?这些都是include的一部分还是直接在nginx.conf中?它们可以以任何方式进行编辑,它们都是include的一部分,而不是直接在nginx.conf中。您的“or”代码读起来像xor。对的我会试试你的解决方案,然后再给你回复。我看错了。您的
~off
是一个正则表达式,与任何“off”匹配。谢谢你的帮助。