nginx中封禁ip和允许内网ip访问的实现示例

目录
  • 一、语法
  • 二、封禁ip
  • 三、仅内网IP访问

Nginx不仅仅只是一款反向代理和负载均衡服务器,它还能提供很多强大的功能,例如:限流、缓存、黑白名单和灰度发布等等,我们先来了解一下nginx如何封禁ip和允许内网ip访问。

一、语法

Nginx的ngx_http_access_module 模块可以封配置内的ip或者ip段

deny IP;
deny subnet;
allow IP;
allow subnet;
# block all ips
deny    all;
# allow all ips
allow    all;

二、封禁ip

假定nginx的目录在/usr/local/nginx/
首先要建一个封ip的配置文件blockips.conf,然后在文件中输入要封的ip

deny 192.168.4.3; 
deny 31.42.145.0/24; 
deny 51.12.35.0/24;

然后保存此文件

并且打开nginx.conf文件,在http配置节内添加下面一行配置:

http {
    # 其他配置

    include blockips.conf;
}

测试现在的nginx配置文件是否是合法

/usr/local/nginx/sbin/nginx -t

如果配置没有问题,就会输出

the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok 
configuration file /usr/local/nginx/conf/nginx.conf test is successful

如果配置有问题就需要检查下哪儿有语法问题
如果没有问题,需要执行下面命令,让nginx重新载入配置文件

/usr/local/nginx/sbin/nginx -s reload

三、仅内网IP访问

配置如下

下面配置中禁止了192.168.1.1,允许其他内网网段,然后deny all禁止其他所有ip。

location / {
  # block one workstation
  deny    192.168.1.1;
  # allow anyone in 192.168.1.0/24
  allow   192.168.1.0/24;
  # drop rest of the world
  deny    all;
}

到此这篇关于nginx中封禁ip和允许内网ip访问的实现示例的文章就介绍到这了,更多相关nginx封禁ip和允许内网ip访问 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Nginx利用Lua+Redis实现动态封禁IP的方法

    一.背景 我们在日常维护网站中,经常会遇到这样一个需求,为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单.对于黑名单之内的 IP ,拒绝提供服务. 本文给大家介绍的是Nginx利用Lua+Redis实现动态封禁IP的方法,下面话不多说了,来一起看看详细的介绍吧 二.架构 实现 IP 黑名单的功能有很多途径: 1.在操作系统层面,配置 iptables,拒绝指定 IP 的网络请求: 2.在 Web Server 层面,通过 Nginx 自身的 deny 选项 或者

  • Nginx如何封禁IP和IP段的实现

    写在前面 Nginx不仅仅只是一款反向代理和负载均衡服务器,它还能提供很多强大的功能,例如:限流.缓存.黑白名单和灰度发布等等.在之前的文章中,我们已经介绍了Nginx提供的这些功能.小伙伴们可以到[Nginx专题]进行查阅.今天,我们来介绍Nginx另一个强大的功能:禁用IP和IP段. 禁用IP和IP段 Nginx的ngx_http_access_module 模块可以封配置内的ip或者ip段,语法如下: deny IP; deny subnet; allow IP; allow subnet

  • nginx中封禁ip和允许内网ip访问的实现示例

    目录 一.语法 二.封禁ip 三.仅内网IP访问 Nginx不仅仅只是一款反向代理和负载均衡服务器,它还能提供很多强大的功能,例如:限流.缓存.黑白名单和灰度发布等等,我们先来了解一下nginx如何封禁ip和允许内网ip访问. 一.语法 Nginx的ngx_http_access_module 模块可以封配置内的ip或者ip段 deny IP; deny subnet; allow IP; allow subnet; # block all ips deny all; # allow all i

  • Java判断IP地址为内网IP还是公网IP的方法

    本文实例讲述了Java判断IP地址为内网IP还是公网IP的方法.分享给大家供大家参考.具体分析如下: tcp/ip协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下: 10.0.0.0/8:10.0.0.0-10.255.255.255 172.16.0.0/12:172.16.0.0-172.31.255.255 192.168.0.0/16:192.168.0.0-192.168.255.255 那么,直接上代码吧: 复制代码 代码如下: public static boolea

  • C#获取真实IP地址(IP转为长整形、判断是否内网IP的方法)

    今天查看登录日志,发现http_x_forwarded_for获取到的ip地址有些是内网ip地址,有些则是公网和内网ip地址一起获取到,用逗号分隔开,日志截图如下: 之前获取ip地址的C#代码如下: 复制代码 代码如下: /// <summary>     /// C#获取客户端真实IP地址     /// </summary>     /// <returns></returns>     public static string GetIP()    

  • Android开发获取手机内网IP地址与外网IP地址的详细方法与源码实例

    在进行Android应用开发过程中,有时候会遇到获取当前Android设备所使用的网络IP地址的场景,有时候需要本地的网络IP地址,即局域网地址,更多的时候是需要当前网络的真实的对外IP地址,即真实的网络地址,如大数据分析时往往需要Android设备上传本地的外网地址.本文对各种IP地址的获取进行了总结. 首先用大家比较熟悉的电脑端局域网地址和外网地址的获取方式对比一下:(1).电脑端局域网地址获取方式,可以通过在终端命令行输入ipconfig进行查看,如下图IPv地址标识的就是本机的局域网地址

  • JS绕过代理、VPN获取真实IP及内网IP,逆向追踪的实现方法

    Firefox 跟 Chrome支持WebRTC可以向STUN服务器请求,返回内外网IP,不同于XMLHttpRequest请求,STUN请求开发者工具当中看不到网络请求的. //get the IP addresses associated with an account function getIPs(callback) { var ip_dups = {}; //compatibility for firefox and chrome var RTCPeerConnection = win

  • php+redis实现多台服务器内网存储session并读取示例

    大型网站由于大并发的问题会导致系统出现诡异的崩溃性问题这着实让人很是蛋疼,首先考虑的就是负载均衡服务器来处理这个,当然数据库的性能也是非常非常重要的,今天就说下在负载均衡情况下对于session这个问题如何处理,说实话不处理session其实也是可以的,但是在实际的情况中会出现一些让用户体验非常蛋疼的问题,比如购物下单的时候负载均衡调配服务器来回切换的过程中session丢失了,这个时候就尴尬了,用户就会郁闷我擦这什么鬼,于是乎各种担心就会出现,这破网站是不是有什么安全问题等等.下面就来说说这个

  • bat脚本显示本机IP地址的两种方法(内网ip)

    实现代码一: 通过 route print 实现 @echo off for /f "tokens=4" %%a in ('route print^|findstr 0.0.0.0.*0.0.0.0') do ( set IP=%%a ) echo %IP% 实现代码二: @echo off for /f "tokens=15" %%i in ('ipconfig ^| find /i "ip address"') do (echo %%i) p

  • Java实现获取内网的所有IP地址

    目录 题目描述 代码详解 效果展示 题目描述 在进行网络编程时,有时需要对局域网的所有主机进行遍历,为此需要获得内网的所以IP地址 题目实现:获得内网的所有IP地址的小应用. 解题思路 创建一个类:GainAlllpFrame,继承JFrame窗体类 定义一个gainAlllp()方法:用于获得所有IP,并显示在文本域中的方法 定义一个内部类Pinglp Thread,且是线程类.用于判断给定IP是否为内网IP的线程对象 线程类的执行逻辑是对指定的IP进行ping 访问 获得本机的IP地址和网段

  • Nginx IP封禁及自动封禁IP的实现

    1.在Nginx的conf目录下创建一个blockip.conf文件 2.里面放需要封禁的IP,格式如下 deny 1.2.3.4; 3.在Nginx的HTTP的配置中添加如下内容 include blockips.conf; 4.重启 Nginx /usr/local/nginx/sbin/nginx -s reload 然后你就会看到IP被封禁了,你会喜提403: 7.小思考:如何实现使用Nginx自动封禁ip的功能 1.AWK统计access.log,记录每分钟访问超过60次的ip,然后配

随机推荐