一 用户认证

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

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. JavaScript高级程序设计笔记12 BOM

    BOM BOM的核心--window对象 窗口和弹窗 location对象--页面信息 navigator对象--浏览器信息 history对象--浏览器历史记录 BOM是使用JavaScript开发 ...

  2. SpringBoot + 通义千问 + 自定义React组件,支持EventStream数据解析!

    一.前言 大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教. 最近ChatGPT非常受欢迎,尤其是在编 ...

  3. Vue + Element UI 实现复制当前行数据功能(复制到新增页面组件值不能更新等问题解决)

    1.需求 使用Vue + Element UI 实现在列表的操作栏新增一个复制按钮,复制当前行的数据可以打开新增弹窗后亦可以跳转到新增页面,本文实现为跳转到新增页面. 2.实现 1)列表页 index ...

  4. 基于OpenAi通用特定领域的智能语音小助手

    无穷尽的Q&A 钉钉...钉钉... 双双同学刚到工位,报销答疑群的消息就万马纷沓而来.她只能咧嘴无奈的摇摇头.水都还没有喝一口就开始"人工智能"的去回复.原本很阳光心情开 ...

  5. Modbus 转PROFINET 网关 TS-180在级联通讯中的应用

    一.硬件连接 TS-180 具有冗余网口功能,用户可以通过级联方式连接来进行通讯,其他资料可参考说明书.将西门子 S7-300 PLC 通过网线与5台 TS-180 串联,用户可以选择下列两种连接方式 ...

  6. 基于 TCP 协议写的 FTP 管理小工具

    这是一个FTP(文件传输协议)管理工具,能够支持文件上传下载以及操作服务端的文件. 该工具由客户端和服务端组成.客户端与服务端通过Socket连接实现通信,客户端发送命令,服务端解析并执行相应的操作. ...

  7. keil 4 安装教程

    一.下载 keil 官网 二.安装教程 1.开始安装 双击安装包,开始安装,直接下一步. 2.勾选同意,下一步 3.选择软件安装路径,下一步 4.填写信息 可以随意填写,下一步. 5.等待安装 6.安 ...

  8. Tainted canvases may not be exported,视频帧截图跨域

    做原生相机拍照的时候遇见的有趣问题,视频流是上传到云服务器的在线链接,赋值到video的src上,然后使用canvas的drawImg方法去截取视频帧做照片,结果canvas报错视频跨域. 解决方案: ...

  9. Head First Java学习:第十一章-异常处理

    第十一章 异常处理 1.方法可以抓住其他方法所抛出的异常:异常总是丢回给调用方 有风险.会抛出异常的程序代码: 负责声明异常:创建Exception对象并抛出 调用该方法的程序代码: 在try中调用程 ...

  10. NLP项目实战01--之电影评论分类

    介绍: 欢迎来到本篇文章!在这里,我们将探讨一个常见而重要的自然语言处理任务--文本分类.具体而言,我们将关注情感分析任务,即通过分析电影评论的情感来判断评论是正面的.负面的. 展示: 训练展示如下: ...