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标签下引用规则。
启动请求频率限制
- 启动请求频率限制前压测
#安装压测工具
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)
- 开启请求频率限制
路径:/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:指定使用的规则名称;
- 启动请求频率限制后压测
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;}
}
访问截图
拦截日志
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"
规则解释
- allow:运行访问的地址,即白名单;
- deny:禁止访问的地址,即黑名单;
- 192.169.1.101:表示单个地址;
- 192.169.1.0/24:表示一个网段;
- 如果同一网段中有几段连续地址,需要一个一个的写;
- 编辑规则:禁止所有,允许个别;允许所有,禁止个别;
Nginx访问控制–基于用户访问控制
功能作用
主要用途
基于用户访问控制,可以让需要登录的用户账号密码登录。
模块名称:ngx_http_auth_basic_module
配置范围
可以配置在http、server、location标签下。
http标签中配置,表示全局设置;
server标签中配置,表示网站设置;
location标签中配置,表示某个匹配设置;
启动用户访问控制
- 建立认证文件
#安装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
- 启动认证
路径:/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;}}
- 验证访问
nginx -t
systemctl reload nginx
账号密码验证
登录完成后页面展示
相关文章:

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_connection…...

S2---FPGA-A7板级原理图硬件实战
视频链接 FPGA-A7板级系统硬件实战01_哔哩哔哩_bilibili FPGA-A7板级原理图硬件实战 基于XC7A100TFGG484的FPGA硬件设计流程图 A7核心板,是基于XILINX公司的ARTIX-7系列100T的XC7A100T,2FGG484I这款芯片开发的高性能核心板,具有高速,高带宽&a…...

RK DVP NVP6158配置 学习
NVP6158简介 NVP6158C是一款4通道通用RX,提供高质量图像的芯片。它接受来自摄像机和其他视频信号的独立4通道通用输入来源。它将4通道通用1M至8M 7.5P视频格式数字化并解码为代表8位ITU-R BT.656/1120 4:2:2格式的数字分量视频,并将单独的BT.601格式与27…...

C++基础2:C++基本数据类型和控制结构
此专栏为移动机器人知识体系下的编程语言中的 C {\rm C} C从入门到深入的专栏,参考书籍:《深入浅出 C {\rm C} C》(马晓锐)和《从 C {\rm C} C到 C {\rm C} C精通面向对象编程》(曾凡锋等)。 2.C基本数据类型和控制结构 2.1 C基本数据类型 程序是由算法…...

HFSS仿真双频微带天线学习笔记
HFSS仿真双频微带天线 文章目录 HFSS仿真双频微带天线1、 求解器设置2、 建模3、 激励方式设置4、 边界条件设置5、 扫频设置6、 设计检查,仿真分析7、 数据后处理 这里重点关注HFSS软件的操作,关于理论知识将在后面的文章中进行更新。 设计要求…...
【十一】【SQL】外连接(左外连接,右外连接)
数据库中的外连接(Outer Join)用于连接两个表,并包括两个表中的匹配行以及左表(LEFT JOIN)或右表(RIGHT JOIN)中未匹配的行。外连接分为两种主要类型: 左外连接(LEFT OU…...

敏捷开发模型:一种灵活、协作和持续的软件开发方法
敏捷开发模型:一种灵活、协作和持续的软件开发方法 引言 在软件开发领域,随着市场需求的不断变化和技术的迅速发展,传统的瀑布模型逐渐暴露出其局限性。为了应对这些挑战,敏捷开发模型应运而生。敏捷开发模型强调灵活、协作和持…...

软件设计师10--计算机组成与体系结构章节回顾
软件设计师10--计算机组成与体系结构章节回顾 章节重要内容考情分析 章节重要内容 考情分析...

数据库分库分表中间件选择
目前分库分表的中间件有三种设计思路,分别是: 采用分散式架构,适用于用Java开发的高性能轻量级OLTP应用程序,以Sharding-JDBC为代表。采用中间层Proxy架构,提供了静态输入和所有语言支持,适用于OLAP应用程…...

代码随想录算法训练营第22天|235.二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点
目录 一、力扣235.二叉搜索树的最近公共祖先1.1 题目1.2 思路1.3 代码 二、力扣701.二叉搜索树中的插入操作2.1 题目2.2 思路2.3 代码 三、力扣450.删除二叉搜索树中的节点3.1 题目3.2 思路3.3 代码3.4 总结 一、力扣235.二叉搜索树的最近公共祖先 1.1 题目 1.2 思路 利用二叉…...
基于SpringBoot的医护人员排班系统详细开题报告(源码)
项目源码:https://gitee.com/oklongmm/biye2 引言 医护人员排班系统是医疗机构中的重点管理工作之一。借助现代化的计算机技术,可以大大提升排班的效率和精准度。因此,本研究旨在使用SpringBoot框架设计和实现一个功能完善的医护人员排班…...

CDH6.3.1离线安装
一、从官方文档整体认识CDH 官方文档地址如下: CDH Overview | 6.3.x | Cloudera Documentation CDH是Apache Hadoop和相关项目中最完整、测试最全面、最受欢迎的发行版。CDH提供Hadoop的核心元素、可扩展存储和分布式计算,以及基于Web的用户界面和重…...
Pytorch之卷积操作
卷积是一种基本的数学操作,常用于信号处理和图像处理领域。在计算机视觉中,卷积操作是一种重要的技术,用于提取图像的特征并进行图像处理。 卷积操作基于一个卷积核(也称为滤波器或权重),它是一个小的矩阵…...

2024年春招小红书前端实习面试题分享
文章目录 导文面试重点一、方便介绍一下,你之前实习都做了什么嘛?二、 可以讲一下封装组件相关逻辑嘛?1. 为什么要封装组件?2. 封装组件的步骤3. 封装组件的原则4. 组件的复用和扩展5. 组件的维护和文档 三、项目的性能优化你有什…...

软件测试--性能测试工具JMeter
软件测试--性能测试工具JMeter 主流性能测试工具1.主流性能测试工具Loadrunner和Jmeter对比 —— 相同点2.主流性能测试工具Loadrunner和Jmeter对比 —— 不同点JMeter基本使用JMeter环境搭建1.安装JDK:2.安装Jmeter:3.注意点:JMeter功能概要1. JMeter文件目录介绍1.1 bin目…...

c++/c图的邻近矩阵表示
#include<iostream> using namespace std;#define MaxVerterNum 100 typedef char VerterType; typedef int EdgeType; typedef struct {VerterType vexs[MaxVerterNum]; // 存储顶点EdgeType edges[MaxVerterNum][MaxVerterNum]; // 存储邻接矩阵int n, e; // 顶点数和边…...
cocos-lua定时器用法
本文介绍cocos-lua(非Quick-cocos)的定时器用法 定时器按是否会随节点销毁,可分为节点调度器和全局调度器 一.节点调度器 frameworks\cocos2d-x\cocos\scripting\lua-bindings\script\cocos2d\deprecated.lua中实现了了schedule和 performWithDelay 1.1.schedul…...

激活函数Swish(ICLR 2018)
paper:Searching for Activation Functions 背景 深度网络中激活函数的选择对训练和任务表现有显著的影响。目前,最成功和最广泛使用的激活函数是校正线性单元(ReLU)。虽然各种手工设计的ReLU替代方案被提出,但由于在…...
【C++ 标准流,文件流】
C 标准流,文件流 ■ 标准输入,输出流,■ 文件流(ofstream写入,ifstream读取,fstream创建-写入-读取)■ open()■ ofstream■ ifstream■ 流插入<<■ 文件位置指针 ■ 标准输入,…...

【排序】详解冒泡排序
一、思想 冒泡排序的基本思想是利用两两比较相邻记录的方式,通过一系列的比较和交换操作,使得较大或较小的元素逐渐移动到数列的一端。在每一轮的排序过程中,都会从数列的起始位置开始,对相邻的元素进行比较,如果它们…...

python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...

Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积
1.题目介绍 给定一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O…...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...