一 用户认证

 某些网页只希望给特定的用户访问,可以设置用户认证,使用户访问时需要进行身份认证,只有认证通过才可访问网页

location / {
root html;
index index.html index.htm;
auth_basic "haha";                    #服务器描述信息
auth_basic_user_file /usr/local/nginx/passwd.db;  #存放用户和密码的文件
}
#下载命令
[root@localhost ~]# yum provides htpasswd
[root@localhost ~]# yum -y install httpd-tools-2.4.6-95.el7.centos.x86_64

#设置用户及密码
[root@localhost ~]# htpasswd -c /usr/local/nginx/passwd.db user1
New password:
Re-type new password:
Adding password for user user1

二 访问控制

 作用同用户认证,对访问的客户端进行限制,可与用户认证一起使用

location / {
root html;
index index.html index.htm;
allow 192.168.10.0/24;    #允许192.168.10网段的访问,可写固定ip(做实验先拒绝198网段访问)
deny all;            #拒绝所有用户访问,优先级从上至下
}
nginx -s reload

三 限速

 nginx限速可以通过 ngx_http_limit_conn_module 和 ngx_http_limit_req_module 模块来实现限速的功能

 1 ngx_http_limit_conn_module 主要限制下载速度

  并发连接限制

http
{
...
limit_conn_zone $binary_remote_addr zone=aming:10m; #定义一个内存区块索引aming,大小为10m,它以$binary_remote_addr作为key
...
server
{
...
limit_conn aming 10;                 #定义针对aming这个zone,并发连接为10个(单个IP的并发最多为10个)
...
}
}

  速度限制

location / {
root html;
index index.html index.htm;
limit_rate_after 512k; #当文件下载到指定大小之后开始限速(以下两个参数对每个请求限制)
limit_rate 150k; #限制下载速度为150k
}

 2 ngx_http_limit_req_module 主要限制请求数

  limit_req_zone

语法: limit_req_zone $variable zone=name:size rate=rate;
默认值: none
配置段: http 设置一块共享内存限制域用来保存键值的状态参数。 特别是保存了当前超出请求的数量
键的值就是指定的变量(空值不会被计算)
如limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; 说明:区域名称为one,大小为10m,平均处理的请求频率不能超过每秒一次,键值是客户端IP
使用$binary_remote_addr变量, 可以将每条状态记录的大小减少到64个字节,这样1M的内存可以保存大约1万6千个64字节的记录
如果限制域的存储空间耗尽了,对于后续所有请求,服务器都会返回 503 (Service Temporarily Unavailable)错误
速度可以设置为每秒处理请求数和每分钟处理请求数,其值必须是整数
即如果需要指定每秒处理少于1个的请求,2秒处理一个请求,可以使用 “30r/m”

  limit_req

语法: limit_req zone=name [burst=number] [nodelay];
默认值: —
配置段: http, server, location 设置对应的共享内存限制域和允许被处理的最大请求数阈值
如果请求的频率超过了限制域配置的值,请求处理会被延迟,所以所有的请求都是以定义的频率被处理的
超过频率限制的请求会被延迟,直到被延迟的请求数超过了定义的阈值
这时,这个请求会被终止,并返回503 (Service Temporarily Unavailable) 错误 这个阈值的默认值为0。如:
limit_req_zone $binary_remote_addr zone=aming:10m rate=1r/s;
server {
location / {
limit_req zone=aming burst=5;
}
} 限制平均每秒不超过一个请求,同时允许超过频率限制的请求数不多于5个 如果不希望超过的请求被延迟,可以用nodelay参数,如: limit_req zone=aming burst=5 nodelay;

 3 设置白名单

  如果是针对公司内部IP或者lo(127.0.0.1)不进行限速,需要用到geo模块

  例:把127.0.0.1和192.168.198.0/24网段设置为白名单

http {
geo $limited {
default 1;
127.0.0.1/32 0;
192.168.100.0/24 0;
} map $limited $limit {
1 $binary_remote_addr;
0 "";
} limit_req_zone $limit zone=aming:10m rate=1r/s; server {
location / {
limit_req zone=aming burst=5;
}
}
}

四 状态访问

 主要用于对服务器的监控,通过访问这个网页得知nginx的连接的相关信息,可设置只允许管理员访问

location = /status {
stub_status on;
access_log off;
     allow 127.0.0.1;
     deny all;
}
Active connections: 2         #活动连接数
server accepts handled requests   #总共连接数 成功创建n次握手(相等表示中间没有失败) 处理了n个请求
13 13 20
Reading: 0 Writing: 1 Waiting: 1   #读取到客户端的Header信息数 返回给客户端的Header信息数
                      #Waiting:开启keep-alive的情况下,这个值等于active - (reading + writing),意思就是Nginx说已经处理完正在等候下一次请求指令的驻留连接

Nginx--用户认证&&访问控制&&限速&&状态访问的更多相关文章

  1. Linux centosVMware Nginx安装、 默认虚拟主机、Nginx用户认证、Nginx域名重定向

    一. Nginx安装 cd /usr/local/src wget http://nginx.org/download/nginx-1.12.1.tar.gz 版本在http://nginx.org/ ...

  2. nginx用户认证与htpasswd命令

    最近在搭建ELK,然后ELK的kibana界面想添加一个访问限制,看到kibana有个插件x-pack,本来想用用,发现是收费的,就放弃了,然后就想着想配置下nginx的认证访问来实现简单的访问登陆. ...

  3. nginx的安装 、Nginx默认虚拟主机、nginx用户认证、nginx 域名重定向

    1.nginx:官网:www.nginx.org 下载:wget -c  http://nginx.org/download/nginx-1.14.0.tar.gz解压:tar -zxvf nginx ...

  4. Nginx安装、默认虚拟主机、Nginx用户认证和域名重定向

    6月7日任务 12.6 Nginx安装12.7 默认虚拟主机12.8 Nginx用户认证12.9 Nginx域名重定向 扩展nginx.conf 配置详解 http://www.ha97.com/51 ...

  5. Nginx 用户认证

    访问一些比较私密的页面 ( 如管理后台,数据后台 ) 时,我们就可以设置访问该页面时需要使用用户名和密码进行验证,这就是用户认证 [root@localhost ~]$ cat /usr/local/ ...

  6. Nginx用户认证配置方法详解(域名/目录)

    Nginx超级强大它可以单独为一个域名设置用户认证,方法也很简单我们只要生成用户认证的用户名和密码,然后再Nginx添加auth认证配置即可 Nginx可以为某一个域名单独加用户认证,具体做法如下: ...

  7. nginx用户认证配置( Basic HTTP authentication)

    ngx_http_auth_basic_module模块实现让访问着,只有输入正确的用户密码才允许访问web内容.web上的一些内容不想被其他人知道,但是又想让部分人看到.nginx的http aut ...

  8. Apache配置--用户认证(针对目录访问)-update2015-05-02

    通过Apache配置可以限制用户对目录的访问,会弹出像phpadmin一样的登陆框. ========================================================= ...

  9. Nginx安装 默认虚拟主机 Nginx用户认证 Nginx域名重定向

    Nginx安装 cd /usr/local/src (http://nginx.org/en/download.html) wget http://nginx.org/download/nginx-1 ...

  10. nginx用户认证配置( Basic HTTP authentication)及认证原理和实现

    https://blog.csdn.net/guyue35/article/details/53906843

随机推荐

  1. 神经网络入门篇:详解搭建神经网络块(Building blocks of deep neural networks)

    搭建神经网络块 这是一个层数较少的神经网络,选择其中一层(方框部分),从这一层的计算着手.在第\(l\)层有参数\(W^{[l]}\)和\(b^{[l]}\),正向传播里有输入的激活函数,输入是前一层 ...

  2. controller加载控制与业务bean加载控制

    1.因功能的不同,如何避免Spring错误加载到SpringMVC的bean--加载Spring控制的bean的时候排除掉SpringMVC控制的bean. package com.itheima.c ...

  3. springMvc报错

    这个报错困扰了我大概一天,主要是刚开始没抓到主要原因,是因为自己的项目结构出现了问题, 导致找不到应有的东西,另一方面就是maven的问题,将maven解决后这个就能用了. 具体解决在https:// ...

  4. Vue2路由嵌套是注意子路由path问题

    1.当子路由以/开始时,它会被视为根路由,并且会显示在URL的根路径中 2.当子路由不以/开始时,它将被视为相对路径,相对于父路由的路径

  5. SpringCloud OpenFeign的使用

    SpringCloud OpenFeign的使用 是什么: 声明式http客户端. 目的: 使远程调用更简单 作用: 提供了http请求模板,仅需编写简单接口和插入注解,就可以定义好原始http请求的 ...

  6. C#/.NET/.NET Core优秀项目和框架2023年12月简报

    前言 公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(公众号每周至少推荐两个优秀的项目和框架当然节假日除外),公众号推文有项目和框架的介绍.功能特点以及部分功能截图等(打不 ...

  7. Python——第四章:匿名函数(lambda 函数)

    匿名函数也被称为 lambda 函数 lambda 函数是一种小型.一次性的.可以在一行内定义的匿名函数.它通常用于一些简单的操作,例如传递给高阶函数(接受函数作为参数的函数)或在一行内定义短小的功能 ...

  8. DVWA File Inclusion(文件包含)全等级

    File Inclusion(文件包含) 目录: File Inclusion(文件包含) 前言 PHP伪协议 1.Low get webshell 本地文件包含 远程文件包含 2.Medium 3. ...

  9. java集合迭代器(Iterator)

    1:什么是迭代器(Iterator): 在java中有很多存储数据的容器比如:(ArrayLIst,HashSet.....)每个容器都有自己的特点 因为内部结构不一样所以为了能对容器内元素的操作更简 ...

  10. window10 AppX Deployment Service (AppXSVC)占用大量内存导致资源管理器卡死无响应

    window10 AppX Deployment Service (AppXSVC)占用大量内存导致资源管理器卡死无响应,导致无法进入桌面打开软件等等. 1.打开任务管理的情况下,先结束卡死的资源管理 ...