Nginx限流设置

1.反向代理(建议先看正向代理,反向代理则是同样你要与对方服务器建立连接,但是,代理服务器和目标服务器在一个LAN下,所以我们需要与代理服务器先建交,再由他获取与目标服务器的交互,好比一个带刀侍卫守护着目标服务器)

  • 屏蔽目标服务器的真实地址,相对安全性较好;
  • nginx的性能好,便于配置负载均衡和动静分离功能,合理利用服务器资源
  • 统一入口,当做负载均衡时,不管目标服务器怎么扩展部署,调用者只访问代理服务器入口即可。
    2.负载均衡(Nginx起到代理作用,在把别人发来的请求转给我们内部服务器时,当我们内部服务器为一个集群时,分活的事就叫负载均衡)
  • RR(轮询):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
    负载均衡的核心代码为
 upstream test {server localhost:8080;server localhost:8081;}
  • 权重(也就是我们来对某一个部署在性能更强的机子上分配更多的活):指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
  upstream test {server localhost:8080 weight=9;server localhost:8081 weight=1;}
  • ip_hash:ip_hash的每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
 upstream test {ip_hash;server localhost:8080;server localhost:8081;}
  • fair(第三方需要额外安装nginx-upstream-fair):按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backend { fair; server localhost:8080;server localhost:8081;} 
  • url_hash(第三方)按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器
    在upstream中加入hash语句,server语句中不能写入weight等其他的参数(第二种权重),hash_method是使用的hash算法
upstream backend { 
hash $request_uri; 
hash_method crc32; 
server localhost:8080;
server localhost:8081;
} 

3.HTTP服务器(包含动静分离):
动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。(也就是把一些常用的不变的静态资源放到nginx中,然后动态变化的资源再由我们内部服务器来提供值)

upstream test{ server localhost:8080; server localhost:8081; } server { listen 80; server_name localhost; location / { root e:wwwroot; index index.html; } # 所有静态请求都由nginx处理,存放目录为html location ~ .(gif|jpg|jpeg|png|bmp|swf|css|js)$ { root e:wwwroot; } # 所有动态请求都转发给tomcat处理 location ~ .(jsp|do)$ { proxy_pass http://test; } error_page 500 502 503 504 /50x.html; location = /50x.html { root e:wwwroot; } } 

4.正向代理(比如VPN,我们自己的电脑与VPN服务器(代理服务器)同处一个LAN下,但是你可能访问不了一些网站(与目标服务器建立不了链接),所以你与你VPN服务器建立连接,让它与你访问不了的网站交流)
以及根据http状态码配置指定页面、访问权限控制(将访问IP加入到白名单就可以访问,加入到黑名单就不可以访问)​编辑
上图是拒绝指定IP,如果是允许指定IP,可进行如下配置,如下:

location /weatherforecast/ {proxy_pass http://testloadbalance;# 这个ip是百度输入ip查看到的,也可以通过nginx日志可以看allow 223.88.45.26;    
}

注:如果在同一location块中同时配置deny和allow,配置在最前面的会覆盖下面的,如下:

location /weatherforecast/ {proxy_pass http://testloadbalance;# deny all 放在前面,就所有不能访问,deny all 会覆盖下面配置#deny all;allow  223.88.45.26;# deny all 放在后面,被上面allow进行覆盖deny all;    
}

、适配PC或移动端(本质就是判断请求头中User-Agent,只要匹配到移动端,就去找指定移动页面就行啦。),限流等
question2:用Nginx来限流的主要思路是什么?
通过IP限流(为了削峰,即让服务器稳定),主要通过两个方面:1.限制请求速率(限制每个客户端IP地址在规定时间内能够发起的请求次数)2.限制并发连接数(如果只限制请求速率的话,可能会出现同一个IP的用户,频繁调用对应相对耗时的api,也就是利用api的耗时,来在请求速率的限制下,仍然可以影响服务器稳定)
question3:具体的命令的含义是什么?

  1. 限制请求速率运用了nginx哪个模块?
  2. binary命令起到什么作用?
  3. 限制并发连接数运用了nginx哪个模块?
  4. 限制请求速率运用到了什么算法?IP以及对应的统计数据放在哪里?
  5. 为什么存储空间选择10M,大概能存多少IP?

 

1ngx_http_limit_req_module
2压缩的作用
3ngx_http_limit_conn_module
4漏桶算法,放nginx中,zone=xxx:10M也就是声明了对应的空间
5存储空间需要根据应用用户量,大概10M==160000Ip

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

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

相关文章

curl8.6.0 - CURLE_PEER_FAILED_VERIFICATION

文章目录 curl8.6.0 - CURLE_PEER_FAILED_VERIFICATION概述笔记END curl8.6.0 - CURLE_PEER_FAILED_VERIFICATION 概述 在看一个开源工程, 里面用到了curl和openssl, 但是工程使用vcpkg来管理的包, 用CMake来编译 依赖太多了, win10 编译选项为 vs2019 x64/Win32(或者Ninja)…

计算机速成课Crash Course - 30. 万维网

今天继续计算机速成课Crash Course的系列讲解。 更多技术文章,全网首发公众号 “摸鱼IT” 锁定 -上午11点 - ,感谢大家关注、转发、点赞! 计算机速成课Crash Course - 30. 万维网 (qq.com) 30. 万维网 前两集我们深入讨论了电线、信号、交…

js基础(1)

操作数组 数组.push() 将一个或多个元素添加到数组末尾,返回数组新长度 数组.unshift() 将一个或多个元素添加到数组末尾,返回数组新长度 数组.pop() 删除最后一个元素,返回该元素的值 更灵活的删除方法,删除指定元素 数组.spli…

代码随想录算法训练营第四十七天(动态规划篇)| 416. 分割等和子集

416. 分割等和子集 题目链接:416. 分割等和子集 - 力扣(LeetCode) 思路 回溯——超时 首先想到之前的回溯算法,寻找数组中加和等于sum(nums)/2的子集,但对于大数组超时了: class Solution(object):def…

数据库切片大对决:ShardingSphere与Mycat技术解析

欢迎来到我的博客,代码的世界里,每一行都是一个故事 数据库切片大对决:ShardingSphere与Mycat技术解析 前言ShardingSphere与Mycat简介工作原理对比功能特性对比 前言 在数据库的舞台上,有两位颇受欢迎的明星,它们分别…

Windows Anaconda 运行 gempy examples。示例::

默认读者已安装:Anaconda. 若未安装请参考以下文章: Windows中如何使用 Anaconda 和 gempy地质建模 1,打开Anaconda Navigator: 打开后如此: 运行JupyterLab: launch。 打开gempy example 建模示例: 官方地址&#x…

基于SpringBoot的记账系统项目

点击以下链接获取源码:https://download.csdn.net/download/qq_64505944/88822660?spm1001.2014.3001.5503 Java项目-8 开发工具:IDEA/Eclipse,MySQL,Tomcat 项目框架:SpringBoot,layui 功能:可以按照类型和时间查询&#xff0c…

比较6*6范围内7个点182个结构的顺序

( A, B )---6*30*2---( 1, 0 )( 0, 1 ) 让网络的输入有6个节点,训练集AB各由6张二值化的图片组成,让A中有7个点,让B全是0,收敛误差7e-4,收敛199次,统计迭代次数平均值并排序。 得到顺序为 用6个点的结构标…

ClickHouse的优缺点和应用场景

当业务场景需要一个大批量、快速的、可支持聚合运算的数据库,那么可选择ClickHouse。 选择ClickHouse 的原因: 记录类型类似于LOG,读取、运算远远大于写入操作选取有限列,对近千万条数据,快算的运算出结果。数据批量…

【龙年大礼】| 2023中国开源年度报告!

【中国开源年度报告】由开源社从 2015 年发起,是国内首个结合多个开源社区、高校、媒体、风投、企业与个人,以纯志愿、非营利的理念和开源社区协作的模式,携手共创完成的开源研究报告。后来由于一些因素暂停,在 2018 年重启了这个…

基于动作合成视频、线免费使用不需要注册,支持多种视频任务:图像生成视频、文本生成视频、视频修改、视频风格化、用Transformer构建世界模型

基于动作合成视频、线免费使用不需要注册,支持多种视频任务:图像生成视频、文本生成视频、视频修改、视频风格化、用Transformer构建世界模型。 WorldDreamer无缝逐帧AI模型: 基于Transformer生成高质量电影级别视频的通用世界模型"。从20亿数据中…

Spring基础 - Spring简单例子引入Spring要点

Spring基础 - Spring简单例子引入Spring要点 设计一个Spring的Hello World 设计一个查询用户的案例的两个需求&#xff0c;来看Spring框架帮我们简化了什么开发工作 pom依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"htt…