Nginx访问限制配置详解

什么是Nginx访问限制配置

nginx访问限制可以基于两个方面,一个是基于ip的访问控制,另一个是基于用户的信任登陆控制

下面我们将对这两种方法逐个介绍

基于IP的访问控制介绍:

可以通过配置基于ip的访问控制,达到让某些ip能够访问,限制哪些ip不能访问的效果

这是允许 访问的配置方法

配置语法:allow address | CIDR | unix | all;

默认配置:没有配置

配置路径:http、server、location、limit_except下;

这是不允许访问的配置

方法配置语法:deny address | CIDR | unix | all;

默认配置:没有配置

配置路径:http、server、location、limit_except下;

基于IP访问限制的测试

1. 查看本机ip地址,如果是公网,则到 ip138网查看,如果是试验,使用cmd查看。

2. 在 /opt/app/code/目录下添加一个 admin.html 文件,里面就是一个带着背景颜色的普通admin页面

3. 在 /etc/nginx/conf.d/目录下,修改default.conf文件,添加如下内容

由上图可知,添加了一个location,来匹配 admin.html,在里面设置了基于ip限制的配置, 将 192.xx.xx.xx 限制,不让其访问,其他的都可以访问。

4. 重新加载nginx

5. 浏览器输入网址,查看日志

6. 从上图看之,已经实现了 限制某个ip的访问,如果只允许某个ip访问,只需要改下关键字即可。

示例:

一、服务器全局限IP

#vi nginx.conf
  allow 10.115.0.116; #允许的IP
  deny all;

二、站点限IP

#vi vhosts.conf
站点全局限IP:
location / {
  index index.html index.htm index.php;
  allow 10.115.0.116;
  deny all;

站点目录限制

location ^~ /test/ {
  allow 10.115.0.116;
  deny all;

基于登陆用户信任的访问控制

举个例子,我们在访问apache信息时弹出一个用户密码框提示,来进行一个访问前验证。

配置语法:auth_basic string | off;

默认配置:auth_basic off;

配置路径:http、server、location、limit_except;

匹配配置语法: auth_basic_user_file filePath;

匹配默认配置: 没有配置

匹配配置路径: http、server、location、limit_except;

1. 需要添加一个身份文件,auth_conf 文件,这里使用一个 htpasswd工具

使用一下命令   htpasswd -c ./auth_conf  root;

解释一下:  htpasswd 命令   -c:默认是使用md5加密, ./auth_conf 是指定路径和文件 , root是用户名

输入之后,会输入两次密码

2. 修改 default.conf配置文件,修改内容如下

3. 重新加载nginx

4. 输入网址,查看结果,可以看出 要输入身份信息才能访问

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Python的Flask框架及Nginx实现静态文件访问限制功能

    Nginx配置 Ngnix,一个高性能的web服务器,毫无疑问它是当下的宠儿.卓越的性能,灵活可扩展,在服务器领域里攻城拔寨,征战天下. 静态文件对于大多数website是不可或缺的一部分.使用Nginx来处理静态文件也是常见的方式.然而,一些静态文件,我们并不像任何情况下都公开给任何用户.例如一些提供给用户下载的文件,一些用户上传的涉及用户隐私的图片等.我们我希望用户登录的情况下可以访问,未登录的用户则不可见. 粗略的处理,在后端程序可以做过滤,渲染页面的时候,在视图逻辑里面验证用户登录,然后

  • 浅谈Nginx请求限制和访问控制的实现

    一.Nginx的请求限制 1. HTTP协议的连接与请求 HTTP协议版本与连接关系 HTTP协议版本 连接关系 HTTP1.0 TCP不能复用 HTTP1.1 顺序性TCP复用 HTTP2.0 多路复用TCP复用 HTTP请求建立在一次TCP连接的基础上. 一次TCP连接至少可以产生一次HTTP请求,HTTP1.1版本以后,建立一次TCP连接可以发送多次HTTP请求. 1. 连接频率限制 ngx_http_limit_conn_module 语法 Syntax: limit_conn_zone

  • Nginx服务器限制IP访问的各种情况全解析

    限制某个IP同一时间段的访问次数 如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候.其中CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包, 造成对方服务器资源耗尽,一直到宕机崩溃. cc攻击一般就是使用有限的ip数对服务器频繁发送数据来达到攻击的目的,nginx可以通过HttpLimitReqModul和HttpLimitZo

  • Nginx服务器限制访问速度的配置方法

    用Nginx建站的同学,常会有限速需求.开发测试阶段在本地限速模拟公网的环境,方便调试.投入运营会有限制附件下限速度,限制每个用户的访问速度,限制每个IP的链接速度等需求. 刚遇到一个Bug在网络很卡的情况下才能重现,本地调试访问本机速度太快,配置Nginx成功达到限速目的,在此分享出来. 配置简单,只需3行,打开"nginx根目录/conf/nginx.conf"配置文件修改如下: http{ -- limit_zone one $binary_remote_addr 10m; --

  • 通过nginx代理拦截请求进行全局访问限制

    本文介绍了通过nginx代理拦截请求进行全局访问限制,分享给大家,具体如下: 运行环境: Ubantu 14.0 tomcat7 nginx 1.4.6(更新后1.5.6) 项目中经常会用到权限管理,必然的就会存在权限的设定和验证:对于登陆或者模块的权限设定验证,在项目中直接实现:那么问题出现了 1.访问资源文件 2.多项目访问权限 3.tomcat中虚拟目录的访问权限 公司项目中用到文件的上传下载,在线预览等功能:当然用户在使用的时候,我们不可能把用户的上传的文件放在项目中,那么必然会用到 虚

  • 在nginx中实现单位时间内限制访问频率的教程

    首先说一下遇到这个问题是因为网站被攻击,阿里云报警,想到要限制一下访问频率,而不是限制ip(限制ip的方案稍后给出).nginx连接资源被吃空返回状态码是502,添加本方案限制后返回599,与正常状态码区别开. 步骤如下: 首先nginx.conf里面添加如下内容: map $http_x_forwarded_for $clientRealIp { "" $remote_addr; ~^(?P<firstAddr>[0-9\.]+),?.*$ $firstAddr; } #

  • Nginx limit 限制访问模块的方法

    Nginx 的 limit 模块用于限制 Nginx 的访问. limit 模块包含有两个部分: limit_conn 用于对连接数量的限制 limit_req 用于对请求频率的限制 limit_conn limit_conn 模块的实现比 limit_req 简单,直接对拥有相同变量值的连接进行计数,超过限制的连接返回 503 错误(Service Temporarily Unavailable). 实际上,由于某一时刻,一个连接上一般只有一个待处理请求,且由于 keepalive 和 pha

  • nginx与apache限制ip并发访问 限制ip连接的设置方法

    nginx nginx限制ip并发数,也是说限制同一个ip同时连接服务器的数量 1.添加limit_zone 这个变量只能在http使用 vi /usr/local/nginx/conf/nginx.conf limit_zone one $binary_remote_addr 10m; 2.添加limit_conn 这个变量可以在http, server, location使用 我只限制一个站点,所以添加到server里面 vi /usr/local/nginx/conf/host/gaoji

  • Nginx服务器实现通过ip和user_gent限制访问的方法分析

    本文实例讲述了Nginx服务器实现通过ip和user_gent限制访问的方法.分享给大家供大家参考,具体如下: DDOS攻击是大规模访问站点经常会遇到的问题,它是指有人通过程序恶意刷站点的某些页面,导致站点响应缓慢或者直接拒绝服务. 这种情况可以通过分析nginx的access日志发现,存在大量相同ip或者user_agent的请求,我们可以根据请求的相似性,对于这些访问的请求,直接在nginx层面上过滤掉. 通过ip限制访问 Nginx中访问控制模块相关文档 http://nginx.org/

  • Nginx限制某个IP同一时间段的访问次数和请求数示例代码

    nginx可以通过ngx_http_limit_conn_module和ngx_http_limit_req_module配置来限制ip在同一时间段的访问次数. ngx_http_limit_conn_module:该模块用于限制每个定义的密钥的连接数,特别是单个IP​​地址的连接数.使用limit_conn_zone和limit_conn指令. ngx_http_limit_req_module:用于限制每一个定义的密钥的请求的处理速率,特别是从一个单一的IP地址的请求的处理速率.使用"泄漏桶

  • Nginx限制IP并发数与下载速度的方法

    在Nginx服务器上进行一些常规设置,来限制其并发数及会话空间等. nginx限制ip并发数,也是说限制同一个ip同时连接服务器的数量 1,添加limit_zone 这个变量只能在http使用 代码示例: 复制代码 代码如下: vi /usr/local/nginx/conf/nginx.conflimit_zone one $remote_addr 10m; 2,添加limit_conn 这个变量可以在http, server, location使用只限制一个站点,所以添加到server里面

随机推荐