Security 针对某些国家/地区的Nginx闭塞邮政
我有一个反向代理nginx到tomcat 我的目标是禁止完全进入某些国家,并禁止除一个国家以外的所有国家的邮政 某些国家的全面访问禁令可以通过内核级的iptables实现。这是一项容易的任务 我的困境是,除了一个国家,我如何禁止所有国家的帖子。其他人可以查看网站(GET),但我不希望他们创建帐户或发布数据 我可以通过列出所有使用post的表单进行筛选,但是太多了 有没有办法只使用nginx post进行过滤 多谢各位Security 针对某些国家/地区的Nginx闭塞邮政,security,nginx,geoip,Security,Nginx,Geoip,我有一个反向代理nginx到tomcat 我的目标是禁止完全进入某些国家,并禁止除一个国家以外的所有国家的邮政 某些国家的全面访问禁令可以通过内核级的iptables实现。这是一项容易的任务 我的困境是,除了一个国家,我如何禁止所有国家的帖子。其他人可以查看网站(GET),但我不希望他们创建帐户或发布数据 我可以通过列出所有使用post的表单进行筛选,但是太多了 有没有办法只使用nginx post进行过滤 多谢各位 geo $ip_country { ranges; default z
geo $ip_country {
ranges;
default zz;
include /usr/local/nginx/conf/ip_country.conf;
}
set $method_country $request_method$ip_country;
if ($method_country ~ "POST(?!au)") {
return 405;
}
ip_country.conf格式,如:
0.0.0.0-0.255.255.255 eu;
1.0.0.0-1.0.0.255 au;
1.0.1.0-1.0.3.255 cn;
1.0.4.0-1.0.7.255 au;
1.0.8.0-1.0.15.255 cn;
1.0.16.0-1.0.31.255 jp;
1.0.32.0-1.0.63.255 cn;
1.0.64.0-1.0.127.255 jp;
1.0.128.0-1.0.255.255 th;
1.1.0.0-1.1.0.255 cn;
...
您可以在脚本中使用$ip\u country
值,包括:
fastcgi_param IP_COUNTRY $ip_country;
Tnx!今晚我会实施它!为此干杯因为某些原因nginx不喜欢你的if子句。我用一个非常丑陋的东西替换了它:#GEO-if($request\u method=POST){set$test P;}if($ip\u-country!=au){set$test“${test}C”}if($test=PC){return 405;}Sry,我已经用
set$method\u-country$request\u-method$ip\u-country纠正了这个错误代码>如果国家名称有多个可能的有效值和/或有效值中有空格,if
行会是什么样子?回答我自己的问题:if($method_country~“POST(?(ca | us | value with spaces)){