最近针对阿里云的轻量服务器设置了只允许www.zhaoxiangguang.cn和zhaoxiangguang.cn域名访问,禁止了IP直接访问,也禁止了其它恶意解析的域名访问。
首先打开nginx的nginx.conf文件,发现是引入了其它的配置include vhost/*.conf;,找到在vhost目录下的配置文件wordpress.conf,增加以下代码:
set $flag 0;
if ($host != zhaoxiangguang.cn) {
set $flag "${flag}1";
}
if ($host != www.zhaoxiangguang.cn){
set $flag "${flag}1";
}
if ($flag = "011"){
return 403;
}
nginx的配置中不支持if条件的逻辑与&& 逻辑或|| 运算等逻辑运算符 ,而且不支持if的嵌套语法,所以我们可以通过上面代码实现,只要不是指定域名访问,就返回403。
#逻辑与实现方式
if ($flag = "011"){
}
#逻辑||实现方式
if ($flag = "01"){
}
修改完成后,重启nginx,最终测试通过。