当前位置: 首页 > news >正文

佛山网站建设网络推广做关于植物的网站

佛山网站建设网络推广,做关于植物的网站,建站及推广,正规的企业网站建设公司前言 其它项目组需要调用接口#xff0c;添加接口限流#xff0c;防止项目被狂掉宕机。生产用了openresty#xff0c;所以在openresty上添加按接口限流#xff0c;同时#xff0c;需按照不同接口有不同的限流规则#xff0c;使用openresty中内置的漏桶算法方式限流。 漏…前言 其它项目组需要调用接口添加接口限流防止项目被狂掉宕机。生产用了openresty所以在openresty上添加按接口限流同时需按照不同接口有不同的限流规则使用openresty中内置的漏桶算法方式限流。 漏桶算法 漏桶算法思路简单水请求先进入到漏桶里漏桶以一定的速度出水当水流入速度过大会直接溢出可以看出漏桶算法能强行限制数据的传输速率。 通俗解释。 比如设置rate为100burst为50即允许1s放进来100个请求桶大小为50。 那么1s内 第1-100个请求会访问成功。 第101-150个请求会进入burst。 第150个请求之后的会直接失败返回。 openresty的说明文档https://github.com/openresty/lua-resty-limit-traffic/blob/master/lib/resty/limit/req.md 限流配置 使用OpenResty的漏桶算法进行限流配置不同接口配置不同的标准所以测试了两个接口test1和test2 主要分两步 添加限流使用的lua脚本在反向代理中配置限流的lua脚本 ps: 因为大多数使用情况还是会反向代理所以直接在反向代理中配置lua 添加lua脚本01和02的区别仅限于漏桶的参数配置不同 添加lua脚本01 在 lualib\utils 路径下创建lua脚本 lua脚本内容 -- utils/limit_req_leaky_bucket.lua local limit_req require resty.limit.req-- rate: 5/s即为每秒3个请求增加桶容量为1/s超过5/s不到(51)/s的delay排队等候 local lim, err limit_req.new(my_limit_req_store1, 5, 1) if not lim thenngx.log(ngx.ERR, failed to instantiate a resty.limit.req object: , err)return ngx.exit(500) endlocal _M {}function _M.incoming()local key ngx.var.binary_remote_addrlocal delay, err lim:incoming(key, true)if not delay thenif err rejected thenreturn ngx.exit(503) -- 超过的请求直接返回503endngx.log(ngx.ERR, failed to limit req: , err)return ngx.exit(500)end-- 此方法返回当前请求需要delay秒后才会被处理和他前面对请求数-- 所以此处对桶中请求进行延时处理让其排队等待就是应用了漏桶算法-- 此处也是与令牌桶的主要区别if delay 0.001 thenngx.sleep(delay)end endreturn _M添加lua脚本02 在 lualib\utils 路径下创建lua脚本 lua脚本内容 -- utils/limit_req_leaky_bucket.lua local limit_req require resty.limit.req-- rate: 3/s即为每秒3个请求增加桶容量为1/s超过3/s不到(31)/s的delay排队等候 local lim, err limit_req.new(my_limit_req_store2, 3, 1) if not lim thenngx.log(ngx.ERR, failed to instantiate a resty.limit.req object: , err)return ngx.exit(500) endlocal _M {}function _M.incoming()local key ngx.var.binary_remote_addrlocal delay, err lim:incoming(key, true)if not delay thenif err rejected thenreturn ngx.exit(503) -- 超过的请求直接返回503endngx.log(ngx.ERR, failed to limit req: , err)return ngx.exit(500)end-- 此方法返回当前请求需要delay秒后才会被处理和他前面对请求数-- 所以此处对桶中请求进行延时处理让其排队等待就是应用了漏桶算法-- 此处也是与令牌桶的主要区别if delay 0.001 thenngx.sleep(delay)end endreturn _M在nginx.conf中添加配置文件 # --- 限流 --- worker_processes 1;events {worker_connections 1024; } # ------------http {# --- 反向代理 ---include /etc/nginx/conf.d/*.conf;# -----------------------include mime.types;default_type application/octet-stream;sendfile on;#keepalive_timeout 0;keepalive_timeout 65;# --- 限流 ---lua_code_cache on;# 共享内存lua_shared_dict my_limit_req_store1 100M;lua_shared_dict my_limit_req_store2 100M;# -----------# --- 反向代理 ---upstream backend_server {server 127.0.0.1:8080;}# -----------------------server {listen 80;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;location / {root html;index index.html index.htm;}location /test1 {# --- 限流 ---access_by_lua_block {local limit_count require utils.limit_req_leaky_bucket1-- 对于内部重定向或子请求不进行限制。因为这些并不是真正对外的请求。if ngx.req.is_internal() thenreturnendlimit_count.incoming()}# ------------# --- 反向代理 ---# 如果内容源是反向代理proxy_pass http://backend_server;proxy_set_header Host $host;proxy_redirect off;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_connect_timeout 60;proxy_read_timeout 600;proxy_send_timeout 600;# -----------------------}location /test2 {# --- 限流 ---access_by_lua_block {local limit_count require utils.limit_req_leaky_bucket2-- 对于内部重定向或子请求不进行限制。因为这些并不是真正对外的请求。if ngx.req.is_internal() thenreturnendlimit_count.incoming()}# ------------# --- 反向代理 ---# 如果内容源是反向代理proxy_pass http://backend_server;proxy_set_header Host $host;proxy_redirect off;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_connect_timeout 60;proxy_read_timeout 600;proxy_send_timeout 600;# -----------------------}}} 参考 http://www.guanshanw.com/post/67951.html
http://wiki.neutronadmin.com/news/20395/

相关文章:

  • 扫二维码直接进网站怎么做网站开发文档模板下载
  • 企业网站项目报价多少合适制作网页的视频教程
  • h5用什么网站来做外贸是做什么的工作内容是什么
  • 自助建站和wordpress建设不动产网站
  • 苏州网站建设方案江门论坛建站模板
  • 荔浦火车站建设在哪里网站关键词策略
  • wordpress付费文章三明seo培训
  • 平面设计入门seo机构
  • 苏州优化网站哪家好网站建设 后台
  • 网络公司网站官网wordpress手机访问慢
  • 西安网站建设huanxi现在不流行做网站了么
  • 建设电子商城网站网站开发开题报告引言
  • .net网站做优化经典重庆论坛新闻论坛发展论坛
  • 邯郸网站推广怎么做忻州市忻府区
  • 上海国际网站建设绍兴住房和城乡建设厅网站首页
  • 建设网站可选择的方案有网站的优点有哪些
  • 公司做网站需要准备哪些资料网站图片加alt标签
  • 网站的漂浮广告怎么做学习网页设计网站
  • 网站建设实训过程五金企业网站模板
  • 做网站一般需要哪些文件夹?网站制作视频
  • 乐山旅游 英文网站建设潍坊建站程序
  • 帝国cms怎样做网站迁移wwr下载建设网站
  • 安徽网站开发培训丹阳网站推广
  • 阿里企业网站托管八年级信技做网站
  • 关于建设学校网站的报告书做短视频的能跟几个网站签约
  • 大型网站建设建设公司排名郑州定制网站推广工具产品
  • 网站建设实训总结范文鄂州seo厂家
  • 微信小程序公司网站怎么制作网站文章来源seo
  • 网站建设管理制度实施方案网络营销招聘岗位有哪些
  • asp建站软件中铁建设门户网登录入口在哪