标签:Openresty相关的结果16条:

    OpenResty(nginx扩展)实现防cc攻击

      OpenResty(nginx扩展)实现防cc攻击防cc攻击,推荐使用HttpGuard 本文介绍使用openresty来实现防cc攻击的功能。openresty官网http://openresty.org/cn/index.html。下面是防cc攻击的流程图。根据流程图,我们知道防cc攻击主要包括两部分,一是限制请求速度,二是给用户发送js跳转代码进行验证请求是否合法。一、安装依赖centos:yuminstallreadline-develp…

    发布于:2019-11-22 18:33:49

    openresty(nginx lua)统计域名状态码、平均响应时间和流量

      背景 之前我们统计域名状态码、平均响应时间和流量的方法是:在每台机器添加一个定时脚本,来获取每个域名最近一分钟的访问日志到临时文件。然后zabbix再对这个一分钟日志临时文件作相关统计。一直运行良好,最近发现某台服务器突然负载增高。使用iotop查看发现获取最近一分钟日志的脚本占用的IO特别高。停止这个定时任务之后恢复正常。于是就打算使用nginxlua来替换目前的方法。新的方法具有统计时占用资源…

    发布于:2019-11-21 22:55:35

    OpenResty(Nginx Lua)统计网站访问信息

      背景之前的一篇文章openresty(nginxlua)统计域名状态码、平均响应时间和流量实现了对域名状态码,平均响应时间和流量的统计。但之前的统计方法没有实现当某一域名404或500等状态码超过一定数量后发送具体的url来快速定位位置。这个功能我们其实是通过统计网站日志来实现了。为了摆脱对网站日志的依赖以及提高统计性能,我们尝试把此功能也用nginxlua来实现。具体的使用方法与之前的文章一样,…

    发布于:2019-11-21 21:52:31

    OpenResty(Nginx Lua)获取Nginx Worker CPU使用率

      在上文我们介绍了三种获取进程cpu使用率的方法,本文介绍使用openresty来获取所有nginxworker的cpu使用率,然后提供一个接口来输出cpu使用率。由于收集cpu使用率需要获取两次,两次之间需要等待一些时间,为了保证此接口的性能,决定不采用接口实时统计,采用后台定时统计,然后接口查询其数据就行。所有步骤思路为:在init_worker阶段获取所有的workerpid在init_wor…

    发布于:2019-11-18 10:11:28

    openresty设置用于access_log的自定义变量

      openresty设置用于access_log的自定义变量期望:在access_log打印自定义变量define_error_codenginx配置:worker_processes1;events{worker_connections1024;}http{log_formatmain'[$time_local]$request$status$remote_addr$define_error_code';server{listen80;location/…

    发布于:2019-11-17 16:36:42

    OpenResty json 删除转义符

      OpenResty中删除json中的转义符cjson在encode时“/”会自动添加转义符“\”;在decode时也会自动将转义符去掉。工作中有个特殊需求,需要手工删除转义符。记录备忘,代码如下:#!/usr/bin/envluajson=require"cjson"result={}result["stream"]="lufei"result["app"]="live/cartoon"oldSt…

    发布于:2019-11-17 16:26:25

    用openresty实现动态upstream反向代理

      用openresty实现动态upstream反向代理前言此文的读者定义为对openresty有一定了解的读者。openresty:https://github.com/openresty/lua-nginx-module此文要讲什么大家都知道openresty可以用ngx.location.capture和ngx.exec来实现内部跳转,下面要讲怎么将ngx.location.capture和ngx.exec与upstream模块结合起来,实现一个…

    发布于:2019-11-17 16:18:12

    使用nginx+lua(openresty)实现waf功能

      使用nginx+lua(openresty)实现waf功能一、了解WAF1.1什么是WAFWeb应用防护系统(也称:网站应用级入侵防御系统。英文:WebApplicationFirewall,简称:WAF)。利用国际上公认的一种说法:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。1.2WAF的功能支持IP白名单和黑名单功能,直接将黑名单的IP访问拒绝。支持URL白名单,将不需要过滤的URL进行定义…

    发布于:2019-11-16 01:36:18

    OpenResty lua优化 – 避免全局变量的使用

      lua-variable-scope在代码中导入模块时应注意一些细节,推介使用如下格式:localxxx=require('xxx')而非:require('xxx')理由如下:从设计上讲,全局环境的生命周期和一个Nginx的请求的生命周期是相同的。为了做到会话隔离,每个请求都有自己的Lua全局变量环境。Lua模块在第一次请求打到服务器上的时候被加载起来,通过package.loaded表内建的r…

    发布于:2019-11-12 22:15:45

    为OpenResty项目编写自定义Nginx C模块

      有些时候,我们需要通过Lua代码操作Nginx里面的某些状态,但是想要的API并不存在于OpenResty之内。这时候,可以选择编写一个NginxC模块,然后暴露出可供Lua调用的接口。本文中,我们会分别探讨,如何通过Nginx变量或FFI的方式去提供Lua调用得到的接口。文中的示例代码可以在ngx_http_example_or_module找到。通过Nginx变量提供接口ngx.var.var…

    发布于:2019-11-12 21:58:02

    openresty resty_lua_http模块unable to get local issuer certificate异常处理

      最近刚换工作,新公司作为一资讯公司有为客户提供相关SDK去接入公司系统进行一些信息查询作业。随之请求流量的增加,缺少网关层进行API保护,系统常常会因为流量暴增时间段搞垮。自然而然,作为招入公司重构原有系统职责中的开发计划的第一步自然就是打算先做网关了。之前主要是做Java开发,对Openresty做涉及到相关技术见解都很肤浅(欢迎大家拍砖),对中间学习使用Openresty所遇到一些异常在这里做…

    发布于:2019-11-10 11:12:11

    OpenResty下安装luarocks

      在做一些openresty的项目的时候,经常会借助一些第三方包来协助开发,为了方便管理,我们可以使用openresy官方的opm,或者lua的包管理工具luarocks,只不过opm的包数量还不是太多,用的较多的还是luarocks,现在只能期待opm社区不断的发展壮大了。在做一些openresty的项目的时候,经常会借助一些第三方包来协助开发,为了方便管理,我们可以使用openresy官方的op…

    发布于:2019-11-07 13:33:29

    openresty通过lua增加随机traceid

      在没有引入zipkin(或者阿里的鹰眼,百度的华佗)这种trace系统的时候,排查问题的一般思路都是按照请求链路来寻找问题源。因此如果能在请求链路中有一个唯一的标识就最好了,而在nginx/openresty做接入层的架构中,可以通过lua脚本生成一个随机traceid。随机数的生成原理,都是先初始化一个随机数种子,由于伪随机数的特性,种子的随机性就显得格外重要,而一般种子的生成都是通过时间的倒序…

    发布于:2019-11-05 06:26:53

    OpenResty + Varnish Cache 实现 WP 的高性能加载教程

      前言VarnishCache是一款高性能的开源HTTP加速器,挪威最大的在线报纸VerdensGang使用3台Varnish代替了原来的12台Squid,性能比以前更好。(超级老的梗了,但是就这么用吧。)VarnishCache在高端WordPress托管上也是非常常见的,由其构成的Web服务缓存加速解决方案已经非常成熟了,不过由于其开发者在HTTPS问题上并不关切所以很多人又抛弃了它采用了其他方…

    发布于:2019-11-05 03:45:14

    Openresty最佳案例 | 第1篇:Nginx介绍

      Openresty最佳案例 | 第1篇:Nginx介绍Nginx简介Nginx是一个高性能的Web服务器,同时是一个高效的反向代理服务器,它还是一个IMAP/POP3/SMTP代理服务器。由于Nginx采用的是事件驱动的架构,能够处理并发百万级别的tcp连接,高度的模块化设计和自由的BSD许可,使得Nginx有着非常丰富的第三方模块。比如Openresty、API网关Kong。BSD开源协议是一个给予使用者很大自由的协议。基本上使用者可以”为所欲为”…

    发布于:2019-11-02 23:57:40

    Openresty最佳案例 | 第2篇:Lua入门

      Openresty最佳案例 | 第2篇:Lua入门什么是luaLua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua是巴西里约热内卢天主教大学(PontificalCatholicUniversityofRiodeJaneiro)里的一个研究小组,由RobertoIerusalimschy、WaldemarCeles和LuizHenriquedeFigue…

    发布于:2019-11-02 23:54:39