05. Nginx入门-Nginx访问控制

测试环境

此处使用的yum安装的Nginx路径。
此处域名均在本地配置hosts。

主配置文件

路径:/etc/nginx/nginx.conf

user  nginx;
worker_processes  auto;error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;keepalive_timeout  65;#gzip  on;include /etc/nginx/conf.d/*.conf;
}

子配置文件

路径:/etc/nginx/conf.d/wangmingqu.conf

server {listen 80;server_name wang.wangmingqu.com;charset utf-8;location / {root /www/wangmingqu/;index index.html index.htm;}
}

测试数据

mkdir -p /www/wangmingqu/
echo "王茗渠测试页面" > /www/wangmingqu/index.html

Nginx访问限制–基于请求频率限制

功能作用

主要用途

限制用户访问的频率,合理配置可以减少恶意攻击。
模块名称:ngx_http_limit_req_module

配置范围

http标签下定义请求频率限制规则,server的location标签下引用规则。

启动请求频率限制

  1. 启动请求频率限制前压测
#安装压测工具
yum -y install httpd-tools#启动请求频率限制前压测
ab -n 100 -c 10 http://192.168.131.129/
#格式:ab -n 发起的请求个数 -c 分几次请求 协议://压测的地址或域名/This is ApacheBench, Version 2.3 <$Revision: 1430300 $>					#压测工具的版本
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking 192.168.131.129 (be patient).....doneServer Software:        nginx/1.25.3							#被压测的服务器软件版本
Server Hostname:        192.168.131.129						#被压测的服务器地址
Server Port:            80												#被压测的服务器端口Document Path:          /													#申请压测的路径
Document Length:        679 bytes									#申请压测的字节大小Concurrency Level:      10												#并发的级别
Time taken for tests:   0.012 seconds							#请求的耗时
Complete requests:      100												#完成的请求数
Failed requests:        0													#失败的请求数
Write errors:           0													#写入错误的请求数
Total transferred:      80100 bytes								#总传输字节大小
HTML transferred:       67900 bytes								#HTML传输的字节大小
Requests per second:    8203.45 [#/sec] (mean)		#每秒可处理的请求数
Time per request:       1.219 [ms] (mean)					#每个请求消耗的时长
Time per request:       0.122 [ms] (mean, across all concurrent requests)
Transfer rate:          6416.95 [Kbytes/sec] receivedConnection Times (ms)min  mean[+/-sd] median   max
Connect:        0    0   0.1      0       0
Processing:     0    1   0.4      1       4
Waiting:        0    1   0.3      1       3
Total:          0    1   0.4      1       4Percentage of the requests served within a certain time (ms)50%      166%      175%      180%      190%      195%      198%      299%      4100%      4 (longest request)
  1. 开启请求频率限制

路径:/etc/nginx/conf.d/wangmingqu.conf

limit_req_zone $binary_remote_addr zone=req_zon:10m rate=1r/s;server {listen 80;server_name wang.wangmingqu.com;charset utf-8;location / {root /www/wangmingqu/;index index.html index.htm;limit_req zone=req_zone;}
}

解释规则与引用

  • 规则格式与解释:
    • “limit_req_zone $binary_remote_addr zone=规则名称:空间大小 流速限制;”
    • limit_req_zone:定义请求频率限制规则;
    • $binary_remote_addr:远程的二进制地址作为参照;
    • zone=req_zon:10m:定义规则的名称,并定义用户请求使用的空间大小;
    • rate=1r/s:定义流水限制,允许每秒请求的次数;
  • 引用格式与解释:
    • “limit_req zone=规则名称;”
    • limit_req:定义引用规则的关键字;
    • zone=req_zone:指定使用的规则名称;
  1. 启动请求频率限制后压测
ab -n 100 -c 10 http://192.168.131.129/This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking 192.168.131.129 (be patient).....doneServer Software:        nginx/1.25.3
Server Hostname:        192.168.131.129
Server Port:            80Document Path:          /
Document Length:        679 bytesConcurrency Level:      10
Time taken for tests:   0.011 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      80100 bytes
HTML transferred:       67900 bytes
Requests per second:    9384.38 [#/sec] (mean)
Time per request:       1.066 [ms] (mean)
Time per request:       0.107 [ms] (mean, across all concurrent requests)
Transfer rate:          7340.71 [Kbytes/sec] receivedConnection Times (ms)min  mean[+/-sd] median   max
Connect:        0    0   0.1      0       0
Processing:     0    1   0.3      1       2
Waiting:        0    1   0.2      1       2
Total:          1    1   0.3      1       2Percentage of the requests served within a certain time (ms)50%      166%      175%      180%      190%      195%      198%      299%      2100%      2 (longest request)

Nginx访问限制–基于连接个数限制

功能作用

主要用途

限制用户访问次数,合理配置可以减少恶意攻击。
模块名称:ngx_http_limit_conn_module

配置范围

启动连接次数限制

开启请求频率限制
路径:/etc/nginx/conf.d/wangmingqu.conf

limit_conn_zone $binary_remote_addr zone=conn_zone:10m;server {listen 80;server_name wang.wangmingqu.com;charset utf-8;location / {root /www/wangmingqu/;index index.html index.htm;limit_conn conn_zone 1;}
}

解释规则与引用

  • 规则格式与解释:
    • “limit_conn_zone $binary_remote_addr zone=规则名称:空间大小;”
    • limit_conn_zone:定义请求次数限制规则;
    • $binary_remote_addr:远程的二进制地址作为参照;
    • zone=conn_zone:10m:定义规则的名称,并定义用户请求使用的空间大小;
  • 引用格式与解释:
    • “limit_conn 规则名称 TCP连接个数;”

Nginx访问控制–基于IP访问控制

功能作用

主要用途

基于IP的访问控制,可以设置黑白名单,允许或阻止某个、某些IP访问。
模块名称:ngx_http_access_module

配置范围

可以配置http、server、location标签;
http标签中配置,表示全局设置;
server标签中配置,表示网站设置;
location标签中配置,表示某个匹配设置;

启动IP访问控制

路径:/etc/nginx/conf.d/wangmingqu.conf

server {listen 80;server_name wang.wangmingqu.com;charset utf-8;allow 192.168.131.1;deny all;location / {root /www/wangmingqu/;index index.html index.htm;}
}

访问截图
image.png
拦截日志

2024/01/17 01:33:55 [error] 32484#32484: *16 access forbidden by rule, client: 192.168.131.129, server: wang.wangmingqu.com, request: "GET / HTTP/1.1", host: "wang.wangmingqu.com"

规则解释

  1. allow:运行访问的地址,即白名单;
  2. deny:禁止访问的地址,即黑名单;
  3. 192.169.1.101:表示单个地址;
  4. 192.169.1.0/24:表示一个网段;
  5. 如果同一网段中有几段连续地址,需要一个一个的写;
  6. 编辑规则:禁止所有,允许个别;允许所有,禁止个别;

Nginx访问控制–基于用户访问控制

功能作用

主要用途

基于用户访问控制,可以让需要登录的用户账号密码登录。
模块名称:ngx_http_auth_basic_module

配置范围

可以配置在http、server、location标签下。
http标签中配置,表示全局设置;
server标签中配置,表示网站设置;
location标签中配置,表示某个匹配设置;

启动用户访问控制

  1. 建立认证文件
#安装httpd-tools工具
yum -y install httpd-tools#创建用户及密码
htpasswd -cm /etc/nginx/conf.d/.passwd wangmingqu#增加用户及密码
htpasswd -m /etc/nginx/conf.d/.passwd changmengka#查看生成的用户及密码
cat /etc/nginx/conf.d/.passwd
  1. 启动认证

路径:/etc/nginx/conf.d/wangmingqu.conf

server {auth_basic "账号密码登录";														#认证提示信息auth_basic_user_file /etc/nginx/conf.d/.passwd;		#认证文件信息listen 80;server_name wang.wangmingqu.com;charset utf-8;location / {root /www/wangmingqu/;index index.html index.htm;}}
  1. 验证访问
nginx -t
systemctl reload nginx

账号密码验证
image.png
登录完成后页面展示
image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/511542.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络-物理层-传输媒体

传输媒体的分类 导向型-同轴电缆 导向型-双绞线 导向型-光纤 非导向型

H12-821_126

126.如图所示&#xff0c;在MA网络中&#xff0c;若要实现R1一定为DR&#xff0c;R2一定为BDR&#xff0c;R3&#xff0c;R4&#xff0c;R5不参与选举&#xff0c;那么R1的dr-priority最大为_____;R2的dr-priority________;R3的dr-priority为________;R4的dr-priority为_____;R…

WordPress建站入门教程:小皮面板phpstudy如何安装PHP和切换php版本?

小皮面板phpstudy支持的PHP版本有很多&#xff0c;包括5.2.17、5.3.29、5.4.45、5.5.9、5.6.9、7.0.9、7.1.9、7.2.9、7.3.4、7.3.9、7.4.3、8.0.2、8.2.9。那么我们如何安装其他的php版本和切换网站的php版本呢&#xff1f;只需要简单几步即可&#xff0c;具体如下&#xff1a…

C++ map用法

int main() {void *p;str *st;st (str*)malloc(sizeof(str));st->a 23;st->b 24;p st;//使用void指针需强制类型转换printf("%d\n%d\n",((str*)p)->a, ((str*)p)->b);free(st);map<char, int> mpci;mpci[m] 20;mpci.insert(pair<char, int…

Spring事务管理与模板对象

1.事务管理 1.事务回顾 事务指数据库中多个操作合并在一起形成的操作序列 事务的作用 当数据库操作序列中个别操作失败时&#xff0c;提供一种方式使数据库状态恢复到正常状态&#xff08;A&#xff09;&#xff0c;保障数据库即使在异常状态下仍能保持数据一致性&#xff…

C# WinForm AndtUI第三方库 Tree控件使用记录

环境搭建 1.在NuGet中搜索AndtUI并下载至C# .NetFramework WinForm项目。 2.添加Tree控件至窗体。 使用方法集合 1.添加节点、子节点 using AntdUI; private void UpdateTreeView() {Tree tvwTestnew Tree();TreeItem rootTreeItem;TreeItem subTreeItem;Dictionary<str…

pdf怎么转换成word?这三种方法简单实用

pdf怎么转换成word&#xff1f;在日常工作和学习中&#xff0c;我们经常会遇到需要将PDF文件转换成Word文档的情况。PDF文件虽然方便阅读&#xff0c;但编辑起来却相对困难。而Word文档则更加灵活&#xff0c;方便我们对内容进行修改和排版。那么&#xff0c;如何将PDF转换成Wo…

2024年【烟花爆竹经营单位主要负责人】考试报名及烟花爆竹经营单位主要负责人新版试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 烟花爆竹经营单位主要负责人考试报名是安全生产模拟考试一点通总题库中生成的一套烟花爆竹经营单位主要负责人新版试题&#xff0c;安全生产模拟考试一点通上烟花爆竹经营单位主要负责人作业手机同步练习。2024年【烟…

【优选算法】前缀和

前缀和思想其实就是一种简单的dp思想&#xff0c;也就是动态规划 什么时候用到前缀和&#xff1f;当要快速求出数组中某一个区间的和 前缀和模板 暴力解法 定义一个指针从左向右遍历&#xff0c;并且累加值即可&#xff0c;这里就不过多赘述&#xff0c;主要还是来看前缀和…

VR 全景模式OpenGL原理

VR 全景模式OpenGL原理 VR 全景模式原理 VR 全景模式原理将画面渲染到球面上&#xff0c;相当于从球心去观察内部球面&#xff0c;观察到的画面 360 度无死角&#xff0c;与普通播平面渲染的本质区别在渲染图像部分&#xff0c;画面渲染到一个矩形平面上&#xff0c;而全景需…

Linux--文件(2)-重定向和文件缓冲

命令行中的重定向符号 介绍和使用 在Linux的命令行中&#xff0c;重定向符号用于将命令的输入或输出重定向到文件或设备。 常见的重定向符号&#xff1a; 1.“>“符号&#xff1a;将命令的标准输出重定向到指定文件中&#xff0c;并覆盖原有的内容。 2.”>>“符号&a…

解决ipconfig不能使用的问题

问题所示&#xff1a;ipconfig不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。 解决办法如下: 1.右击此电脑&#xff0c;点击属性设置&#xff1a; 2.点击高级系统设置 3.点击进入环境变量 4.在系统变量中进行设置&#xff0c;双击PATH进行配置 5.点击新建&am…