nginx访问控制allow、deny(ngx_http_access_module)

单看nginx模块名ngx_http_access_module,很多人一定很陌生,但是deny和allow相比没一个人不知道的,实际上deny和allow指令属于ngx_http_access_module.我们想控制某个uri或者一个路径不让人访问,在nginx就得靠它了。

nginx的访问控制模块语法很简单,至少比apache好理解,apache的allow和deny的顺序让很多初学者抓头.好了具体看下这个插件的使用方法吧。

1、安装模块

这个模块内置在了nginx中,除非你安装中使用了–without-http_access_module。如果你还没安装过nginx,那么请参考下ttlsa之前写的nginx安装.

2、指令

allow
语法:     allow address | CIDR | unix: | all;
默认值:     —
配置段:     http, server, location, limit_except

允许某个ip或者一个ip段访问.如果指定unix:,那将允许socket的访问.注意:unix在1.5.1中新加入的功能,如果你的版本比这个低,请不要使用这个方法。

deny
语法:     deny address | CIDR | unix: | all;
默认值:     —
配置段:     http, server, location, limit_except

禁止某个ip或者一个ip段访问.如果指定unix:,那将禁止socket的访问.注意:unix在1.5.1中新加入的功能,如果你的版本比这个低,请不要使用这个方法。

3. allow、deny实例

 代码如下 复制代码

location / {
deny  192.168.1.1;
allow 192.168.1.0/24;
allow 10.1.1.0/16;
allow 2001:0db8::/32;
deny  all;
}

从上到下的顺序,类似iptables。匹配到了便跳出。如上的例子先禁止了192.16.1.1,接下来允许了3个网段,其中包含了一个ipv6,最后未匹配的IP全部禁止访问.  在实际生产环境中,我们也会使用nginx 的geo模块配合使用,有兴趣的请参考ttlsa相关文章nginx geo使用方法.

4. 结束语

nginx访问控制模块要数nginx里面最简单的指令,只要记住你想禁止谁访问就deny加上IP,想允许则加上allow ip,想禁止或者允许所有,那么allow all或者deny all即可.

时间: 2024-10-11 03:04:22

nginx访问控制allow、deny(ngx_http_access_module)的相关文章

Nginx访问控制及日志处理

Nginx http://www.aliyun.com/zixun/aggregation/38609.html">访问控制 1.Nginx 身份证验证 #cd /usr/local/nginx/conf#mkdir htpasswd/usr/local/apache2/bin/htpasswd -c /usr/local/nginx/conf/htpasswd/tongji linuxtone#添加用户名为linuxtoneNew password: (此处输入你的密码)Re-type

nginx访问控制:如何通过map来控制http_x_forwarded_for访问限制

通过map修改访问限制 目前,仓库通过allow host的方式来控制访问,但实际上没有启到作用,请求从lb过来,host已经变化,所以需要用http_x_forwarded_for来做限制. 允许访问ip19.29.55.15 13.56.217.135 211.22.42.100 119.9.14.149其他都403影响范围: 不升级的情况下不影响实现方法: 1.map(用于http段) 2.location if else来判断(server) map: map $http_x_forwa

Nginx源码安装及调优配置

由于Nginx本身的一些优点,轻量,开源,易用,越来越多的公司使用nginx作为自己公司的web应用服务器,本文详细介绍nginx源码安装的同时并对nginx进行优化配置. Nginx编译前的优化 [root@linuxprobe ~]# wget http://nginx.org/download/nginx-1.10.1.tar.gz [root@linuxprobe ~]# tar xvf nginx-1.10.1.tar.gz -C /usr/local/src/ [root@linux

nginx服务器安装及配置文件详解

nginx在工作中已经有好几个环境在使用了,每次都是重新去网上扒博客,各种编译配置,今天自己也整理一份安装文档和nginx.conf配置选项的说明,留作以后参考.像负载均衡配置(包括健康检查).缓存(包括清空缓存)配置实例,请参考http://segmentfault.com/a/1190000002873747 ,ssl加密请参考 http://seanlook.com/2015/05/28/nginx-ssl/ . 1. 安装nginx 1.1 选择稳定版本 我们编译安装nginx来定制自己

Nginx服务器基本的模块配置和使用全攻略_nginx

1. 安装nginx 1.1 选择稳定版本我们编译安装nginx来定制自己的模块,机器CentOS 6.2 x86_64.首先安装缺少的依赖包: # yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel 这些软件包如果yum上没有的话可以下载源码来编译安装,只是要注意编译时默认安装的目录,确保下面在安装nginx时能够找到这些动态库文件(ldconfig). 从

nginx服务器安装及配置文件介绍

1. 安装nginx 1.1 选择稳定版本 我们编译安装nginx来定制自己的模块,机器CentOS 6.2 x86_64.首先安装缺少的依赖包: # yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel 这些软件包如果yum上没有的话可以下载源码来编译安装,只是要注意编译时默认安装的目录,确保下面在安装nginx时能够找到这些动态库文件(ldconfig). 从

Nginx 服务器安装及配置文件详解介绍_nginx

Nginx 在工作中已经有好几个环境在使用了,每次都是重新去网上找博客,各种编译配置,今天自己也整理一份安装文档和 nginx.conf 配置选项的说明,留作以后参考. 1. 安装nginx 1.1 选择稳定版本 我们编译安装nginx来定制自己的模块,机器CentOS 6.2 x86_64.首先安装缺少的依赖包: # yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-d

Nginx+FastCGI配置

安装过程中参考:张宴 http://blog.s135.com/nginx_php_v5/nginx对我来说是一个新的内容,安装的包比较多,在经过了一段时间对nginx的了解之后,才真正的配置成功,本文在经过第二轮的nginx配置学习过程中,不断的完善,不断的理解.对以后再次配置是一个很好的总结. 1.1 nginx概述nginx简介Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为"engine X", 是一个高性能的HTTP和反向代理服务器,同时也是一个I

Nginx禁止用户真实IP访问的方法配置

做过面向公网WEB运维的苦逼们肯定见识过各种恶意扫描.拉取.注入等图谋不轨行为吧?对于直接对外的WEB服务器,我们可以直接通过 iptables . Nginx 的deny指令或者是程序来ban掉这些恶意请求.   而对于套了一层 CDN 或代理的网站,这些方法可能就失效了.尤其是个人网站,可能就一台VPS,然后套一个免费的CDN就行走在互联网了.并不是每个CDN都能精准的拦截各种恶意请求的,更闹心的是很多CDN还不支持用户在CDN上添加BAN规则,比如腾讯云CDN...   因此,就有了本文的