nginx 怎么屏蔽通过ip访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx 怎么屏蔽通过ip访问相关的知识,希望对你有一定的参考价值。

参考技术A 我的服务器也在阿里云 按照你的说 接入阿里云的waf对网站进行防护,但是如果直接通过IP地址访问网站即可绕过阿里云waf,于是希望禁止通过ip访问网站
打开nginx的配置文件nginx.conf
在server段里插入如下内容即可
if ($host != 'chaodiquan.com' )
return 403;

解释一下,这段的意思是,如果访问请求不是上面指定的域名,就返回403错误。

sh Nginx的屏蔽IP访问

屏蔽访问过于频繁的IP,编写脚本需要根据实际的nginx服务器log日志,取出访问IP和User-Agent,在nginx配置nginx.conf文件中添加内容:
```shell
include ./vhost/blocksip.conf;
```

编写脚本内容:blocksip.sh 
```bash
#!/bin/bash
nginx_home=/usr/local/nginx
log_path=/usr/local/nginx/logs
tail -n50000 /usr/local/nginx/logs/access.log \
|awk '{print $1,$12}' \
|grep -i -v -E "google|baidu|qq|so|sogou" \
|awk '{print $1}'|sort|uniq -c|sort -rn \
|awk '{if($1>1000)print "deny "$2";"}' >$nginx_home/conf/vhost/blocksip.conf
/usr/local/nginx/sbin/nginx -s reload
```

nginx允许和禁止某个IP或IP段的访问都建立在该访问可以正常通过iptable防火墙。当然,也可以把过滤出的ip直接加到iptables中,彻底拒绝该ip的所有请求。

参考 https://blog.yoodb.com/yoodb/article/detail/1332

以上是关于nginx 怎么屏蔽通过ip访问的主要内容,如果未能解决你的问题,请参考以下文章

nginx怎么禁止IP+非80端口

Nginx限制ip访问

在Nginx服务器上屏蔽IP

nginx 无法通过ip访问网站怎么解决

网站通过配置web.config屏蔽IP访问

Nginx 禁用IP IP段