在Nginx服务器上屏蔽IP

采集和防止采集是一个经久不息的话题,一方面都想搞别人的东西,另一方面不想自己的东西被别人搞走。

本文介绍如何利用nginx屏蔽ip来实现防止采集,当然也可以通过iptable来实现。

1.查找要屏蔽的ip

awk ‘{print $1}‘ nginx.access.log |sort |uniq -c|sort -n

nginx.access.log 为日志文件,

会到如下结果,前面是ip的访问次数,后面是ip,很明显我们需要把访问次数多的ip并且不是蜘蛛的ip屏蔽掉,本例当中我们屏蔽掉

165.91.122.67

...
13610 202.112.113.192
95772 180.169.22.135
337418 219.220.141.2
558378 165.91.122.67

2.在nginx的安装目录下面,新建屏蔽ip文件,命名为blockip.conf,以后新增加屏蔽ip只需编辑这个文件即可。 加入如下内容

deny 165.91.122.67; 

保存一下。

3.在nginx的配置文件nginx.conf中加入如下配置,可以放到http, server, location, limit_except语句块,需要注意相对路径,本例当中nginx.conf,blocksip.conf在同一个目录中。

include blockip.conf; 

4.重启一下nginx的服务:/usr/local/nginx/nginx -s reload 就可以生效了。

高级用法:

屏蔽ip的配置文件既可以屏蔽单个ip,也可以屏蔽ip段,或者只允许某个ip或者某个ip段访问。

# 屏蔽单个ip访问

deny IP;
# 允许单个ip访问

allow IP;
# 屏蔽所有ip访问

deny all;
# 允许所有ip访问

allow all;
#屏蔽整个段即从123.0.0.1到123.255.255.254访问的命令

deny 123.0.0.0/8
#屏蔽IP段即从123.45.0.1到123.45.255.254访问的命令

deny 124.45.0.0/16
#屏蔽IP段即从123.45.6.1到123.45.6.254访问的命令

deny 123.45.6.0/24

如果你想实现这样的应用,除了几个IP外,其他全部拒绝,
那需要你在blockip.conf中这样写

allow 1.1.1.1;
allow 1.1.1.2;
deny all;

单独网站屏蔽IP的方法,把include blocksip.conf; 放到网址对应的在server{}语句块,
所有网站屏蔽IP的方法,把include blocksip.conf; 放到http {}语句块。

屏蔽访问过于频繁的IP脚本需要根据实际的nginx log 格式,修改,取出 访问IP 和User-Agent.
在nginx配置文件中添加一条配置

include ./vhost/blockip.conf;

脚本内容:

#!/bin/bash
nginx_home=/usr/local/webserver/nginx
log_path=/usr/local/webserver/nginx/logs
tail -n50000 /usr/local/webserver/nginx/logs/access.log |awk ‘{print $1,$12}‘ |grep -i -v -E "google|yahoo|baidu|msnbot|FeedSky|sogou" |awk ‘{print $1}‘|sort|uniq -c|sort -rn |awk ‘{if($1>1000)print "deny "$2";"}‘ >$nginx_home/conf/vhost/blockip.conf
/etc/init.d/nginx reload

转自

在Nginx服务器上屏蔽IP的一些基本配置方法分享_nginx_脚本之家
http://www.jb51.net/article/77043.htm

时间: 2024-08-29 18:19:45

在Nginx服务器上屏蔽IP的相关文章

在IIS服务器上屏蔽IP的访问

今天就跟大家分享一下在IIS服务器上如何屏蔽特定IP的访问,希望对大家有所帮助. 第一种方法:通过iis中的ip地址和域名限制. 此方法简单有效,建议使用 点击网站--右键属性--目录安全性--IP地址和域名限制--编辑,(如果仅给单个网站设置,请选择下边的站点,点右键“属性”,然后再按下面的步骤操作)如图: 将网站的属性窗口切换到“目录安全性”标签,这时我们可以看到“IP地址及域名限制”选项框中,通过选项框中的功能描述,可以确定我们要找的就是它了.单击框中的“编辑…”按钮,弹出如图所示的对话框

Nginx服务器上安装并配置PHPMyAdmin的教程

这篇文章主要介绍了Nginx服务器上安装并配置PHPMyAdmin的教程,附带一条PHPMyAdmin加载慢的解决方法:)需要的朋友可以参考下一. 准备工作: 如果mysql的root账号为空,需要设置root密码CentOS下默认安装的mysql服务器,里面的root账号默认密码为空,首先为root设置一个密码#mysqladmin -u root password yourpassword *注: 虽然通过一些特殊配置,可以使phpmyadmin允许空密码登录,但是不推荐这样做,尤其是公网的

关于nginx服务器上传限制

nginx的上传参数问题,需要特别注意client_max_body_size这个参数,否则会中断在nginx的请求中,在php中无法log到访问的.修改了php.ini文件如下:参数 设置 说明file_uploads on 是否允许通过HTTP上传文件的开关.默认为ON即是开upload_tmp_dir – 文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹upload_max_filesize 8m 望文生意,即允许上传文件大小的最大值.默认为2Mpost_max_

Nginx服务器上编译安装PHP

下载PHP# wget http://cn2.php.net/distributions/php-7.0.0.tar.gz 解压缩PHP# tar -zxvf php-7.0.0.tar.gz && cd php-7.0.0 安装依赖软件# yum -y install gcc libxml2-devel 编译安装PHP# ./configure --prefix=/usr/local/php7 --enable-fpm --with-fpm-user=nginx --with-fpm-g

nginx服务器上遇到了acces denied,报错是fastCGI只要好好修改配置就行了

猜想: 懵逼 实践: 首先通用的方法,并没有解决问题. 1.修改php-fpm配置文件vim /etc/php-fpm.d/www.confuser = nginx        编辑用户为nginxgroup = nginx        修改组为nginx 2.修改目录权限chown nginx.nginx /usr/share/nginx/html/ -R #设置目录所有者chmod 700 /usr/share/nginx/html/ -R #设置目录权限 定位: 首先看报错: 2013

nginx服务器上 font awesome 字体不能正常显示

问题如题 解决方法: 找到nginx的mime配置文件,添加以下代码: application/x-font-ttf ttf; font/opentype otf; application/vnd.ms-fontobject eot; font/x-woff woff; 借鉴于 :http://www.51dev.com/qitagongju/249 原文地址:https://www.cnblogs.com/lightinblack/p/8278526.html

在Linux服务器上添加ip白名单允许ssh登录访问

vi /etc/hosts.allow # hosts.allow This file contains access rules which are used to # allow or deny connections to network services that # either use the tcp_wrappers library or that have been # started through a tcp_wrappers-enabled xinetd. # # See

在Nginx中部署基于IP的虚拟主机

一.虚拟主机概念 虚拟主机是在网络服务器上划分出一定的磁盘空间供用户放置站点.应用组件等,提供必要的站点功能.数据存放和传输功能.所谓虚拟主机,也叫"网站空间", 就是把一台运行在互联网上的服务器划分成多个"虚拟"的服务器,每一个虚拟主机都具有独立的域名和完整的Internet服务器(支持WWW.FTP. E-mail等)功能,从用户角度来看,每台虚拟主机和一台独立的服务器完全相同,在IP地址日益紧张的今天,基于域名的虚拟主机要比基于IP的虚拟主机 使用的更加广泛.

Nginx服务器的安装与反向代理负载均衡

Nginx服务器 一:什么是Nginx? 我们生活的世界中,有的时候需要上网.我们可以浏览很多很多的网页,这些网页都是由一系列的程序组成,但是我们是否想过,这些程序存储在什么地方呢?没错,这些程序都是存储在一种名叫服务器的硬件上,比如我们的电脑也是一种服务器,只不过我们的个人电脑作为服务器的话性能会比较低.我们的网页程序存储在服务器硬件上,是否可以随意存储呢?不是的,我们需要在服务器硬件的操作系统中搭建一个服务器软件,那么这样,有服务器软件跟服务器硬件配合,才形成一个完整的服务器.服务器软件有非