我想双重保护使用自定义标头的应用程序来授权一些重要的视图。 由于这些调用应该只来自一些知名的IP,我想阻止包含这个自定义头的请求(如X-SuperAdminToken),而不是来自白名单IP。
就像是:
if ($http_xsuperadmintoken) { allow 192.168.1.0/24; allow 10.1.2.3; deny all; }
但似乎我不允许在一个if块中放置一个allow指令:
# nginx -t nginx: [emerg] "allow" directive is not allowed here in /etc/nginx/sites- enabled/default:44
我还没有find解决方法。
你可以尝试这些方面的东西。 你需要添加自己的具体细节,包括位置块细节,但这应该工作
location / { error_page 412 = @checkip; recursive_error_pages on; if ($something) { return 412; } } location @checkip { allow 192.168.1.0/24; allow 10.1.2.3; deny all; }
这样做是检查$东西,如果返回一个412错误,然后由@checkip块处理,然后我们检查IP地址。