最近针对阿里云的轻量服务器设置了只允许www.zhaoxiangguang.cn和zhaoxiangguang.cn域名访问,禁止了IP直接访问,也禁止了其它恶意解析的域名访问。
首先打开nginx的nginx.conf文件,发现是引入了其它的配置include vhost/*.conf;,找到在vhost目录下的配置文件wordpress.conf,增加以下代码:
1 2 3 4 5 6 7 8 9 10 | 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。
1 2 3 4 5 6 7 8 9 | #逻辑与实现方式 if ($flag = "011"){ } #逻辑||实现方式 if ($flag = "01"){ } |
修改完成后,重启nginx,最终测试通过。