nginx白名单server与localtion位置配置的关系
1、故事
在server里添加了一个白名单文件,在localtion添加了allow ip,添加deny all;。在这个过程中我忽略了白名单文件,然后意思就是localtion局部开放。待全局开方时,我只取消了localtion里边的deny all;也就是全局已经开启访问,测试结果也和我想象的一样。后来当我清理完allow ip;就是觉得碍眼,既然全局就没必要再配置allow ip;了,结果测试结果恰恰相反,白名单文件生效了,导致系统访问失败。
结果是:
我知道了,原来是因为nginx匹配规则是先localtion,后server,但凡localtion有一个allow ip;没有deny all;则全部开放并且以这个规则为准,sever再配置则不生效了。我验证了就是这么回事哈
温馨提示:这是一个恐怖而危险的行为,事后想想真幸运……