阅读nginx的ngx_http_access_module的文档,我碰到这个:
在很多规则的情况下,使用ngx_http_geo_module模块variables是可取的。
我怎样才能使用地理模块的允许/拒绝? 如果我这样做:
geo $listofips { default 0; 8.8.8.8 1; } server { # [...] allow $listofips; deny all; }
它给了我以下错误:
无效参数“$ listofips”在/path/到/configuration:97
如何使用地理模块进行访问控制? 我不能使用ifs,因为它显然会中断try_files (请参阅nginx的IfIsEvil)。
在没有使用IF的情况下,我确信在写这个答案的时候这是不可能的。
所以在这种情况下,看起来像这样:
geo $trusted_user { default 0; 8.8.8.8 1; } server { if ( $trusted_user = 0 ) { return 403; } }
向NGINX团队发送build议: https ://www.nginx.com/
这个问题是基于这个回答回答的: NGINX – 有条件地允许或拒绝知识产权
search源“#try_files不会工作,因为如果”在“示例” : https : //www.nginx.com/resources/wiki/start/topics/depth/ifisevil/#examples