外贸网站建设中我们经常会碰到这样的问题,不希望国内的同行来访问我们的网站,或者说不希望国内用户来访问我们的网站。毕竟网站是放在国外(当然我们一般都是放在美国),那么我们要如何来处理呢?
总结出常用的三种方法(前提是贵公司有独立服务器的前提下,哪怕一个月5刀的linode也可以啊).
第一种方法:直接在nginx 虚拟主机配置文件中添加如下规则(推荐)
if ($http_accept_language ~* ^zh) { return 403;}
重启nginx,问题解决。
第二种方法:js屏蔽中文浏览器
<script type="text/javascript">
if (navigator.language)
var language = navigator.language;
else
var language = navigator.browserLanguage;
if(language.indexOf('zh') > -1)
document.location.href = '403-Forbidden.html';
</script>
第三种方法:通过iptables规则屏蔽的国内ip (不推荐)
#下载中国IP库
wgethttp://www.ipdeny.com/ipblocks/data/countries/cn.zone
#运行以下脚本
#!/bin/bash
COUNTRY="cn"
IPTABLES=/sbin/iptables
EGREP=/bin/egrep
if["$(id-u)"!="0"];then
echo"youmustberoot"1>&2
exit1
fi
resetrules(){
$IPTABLES-F
$IPTABLES-tnat-F
$IPTABLES-tmangle-F
$IPTABLES-X
}
resetrules
forcin$COUNTRY
do
country_file=$c.zone
IPS=$($EGREP-v"^#|^$"$country_file)
foripin$IPS
do
echo"blocking$ip"
$IPTABLES-AINPUT-s$ip-jDROP
done
done