lua

proxy_pass does not resolve DNS using /etc/hosts

血红的双手。 提交于 2021-01-20 17:59:45
问题 In nginx the proxy_pass directive is not resolving DNS using the /etc/hosts file. Any way to enable this possibility (maybe by leveraging Lua as a last resort)? 回答1: In short, you need to install dnsmasq locally and use 127.0.0.1 as a resolver. See this related question and answer: When using proxy_pass, can /etc/hosts be used to resolve domain names instead of "resolver"? 回答2: If you have a server with systemd you can use the nameserver shipped with it, systemd-resolved, to resolve your

【Lua基础系列】增加(insert),删除(remove),移动move(),以及排序(sort)

那年仲夏 提交于 2021-01-15 13:12:18
【Lua基础系列】增加(insert),删除(remove),移动move(),以及排序(sort) 大家好,我是Lampard~~ 欢迎来到Lua进阶系列的博客 前文再续,书接上一回。今天和大家讲解一下lua中的增加(insert),删除(remove),移动move(),以及排序(sort)方法 表标准库提供了操作列表和序列的一些常用函数。简单介绍增加(insert),删除(remove),移动move(),以及排序(sort) table.insert () insert()有两种格式,一种是两个参数,insert(tableName,元素),这种情况下就会默认插到末尾。 另一种是三个参数(tableName,位置,元素),则可以按照自己的想法插入元素。 table.remove() 删除指定位置的元素,并把后面的元素往前移动填充删除所造成的空洞。 table.move(tableA, 表A起始索引,表A终止索引,表B元素安防位置,tableB) 它的作用时把表A中从起始索引到终止索引的值移动到表B中 table.sort () 排序 如果我们仅仅想把它们的值给排序一遍,则只需要table.sort(表名)即可。 但是假如我们的值不是单纯的数字,而是一个表。也就是说我们的数组是存放了一个个表,我们想要根据表中的某一个元素作为标准进行排序,我们可以再sort参数中放入一个函数

redis分布式锁01

偶尔善良 提交于 2021-01-15 02:26:38
在单体项目中,如果要保证程序只有一个线程进入,使用synchronized锁住代码即可,不过在分布式的情况下,synchronized只能锁住本地对象,如果其他的请求进入,synchronized是没有用的,使用redis的分布式锁; 代码: public Map<String, List<Catelog2Vo>> getCatalogJsonFromDbWithRedisisLock() { //1.站分布式锁 redis占坑 //NS 如果设置的值没有的话就创建 成功返回ok 在创建的时候必须创建和设置锁的过期时间一起原子操作,才能万无一失 String uuid = UUID. randomUUID ().toString(); Boolean lock = stringRedisTemplate .opsForValue().setIfAbsent( "lock" , uuid, 300 , TimeUnit. SECONDS ); if (lock) { //设置锁的过期时间,不过如果在这里没设置之前就断电了,就麻烦了 // stringRedisTemplate.expire("lock",300,TimeUnit.SECONDS); //站所成功 Map<String, List<Catelog2Vo>> dataFromDb; try { dataFromDb =

OpenResty创造者

[亡魂溺海] 提交于 2021-01-14 03:08:37
OpenResty 是一个开源的 Web 平台,用于开发高性能和高动态的 Web 网关或者 Web 应用。OpenResty 最早是为了支持全网搜索引擎周边的相关搜索的 API 接口,后来我们基于 Nginx 和 LuaJIT 重写了 OpenResty,用于支持淘宝量子统计这款产品的所有数据 API,再后来,我加入美国的 CDN 公司 Cloudflare,使用 OpenResty 驱动 Cloudflare 全球 CDN 网络的动态 http 和 https 代理系统。 从出生的第一天起,OpenResty 就是开源的。这些年来, OpenResty 社区尝试把它用于各种不同的业务场景,有些场景甚至是我们完全无法想象的。 比如有的公司使用它构建分布式网络存储系统的前端和后端(比如网盘应用);有的用它来构建完整的 Web 应用,像电商平台的商品详情页的生成和大型体育赛事的 Web 管理系统;也有的公司基于它构建大型的互联网广告平台,或者更复杂的 Web API 管理系统;还有的公司拿它来驱动小流量调度的硬件盒子,或者驱动家居陪伴型机器人;当然,更多的还是用于实现那些流量非常庞大的 Web API。[似乎和流量相关的工作都有机会用到 OpenResty,我们也有用户使用完全基于 OpenResty 的权威 DNS 服务器。] OpenResty 的优势在于小巧灵活、高性动态。 基于

Openresty 与 Tengine

纵然是瞬间 提交于 2021-01-13 19:04:48
Openresty和Tengine基于 Nginx 的两个衍生版本,某种意义上他们都和淘宝有关系,前者是前淘宝工程师agentzh主导开发的,后者是淘宝的一个开源项目; Openresty的最大特点是引入了ngx_lua模块,支持使用lua开发插件; Tengine的特点是融入了因淘宝自身的一些业务带来的新功能; Tengine 简介 tengine官方网站: http://tengine.taobao.org/index_cn.html 在 Nginx官方版本的基础上增加的一些定制模块如下: 1、支持动态加载模块:通过加载so文件实现,不用再重新编译整个项目了,配置如下: dso { load ngx_http_lua_module.so; load ngx_http_memcached_module.so; } 2、ngx_proc_daytime_module模块,这个模块允许开一个独立的服务进程,该模块本身并未实现具体的业务逻辑,而是构建了一个TCP Server框架,等待开发者来实现自己的业务; 3、ngx_http_concat_module模块,用于合并多个文件的响应; 4、ngx_http_upstream_session_sticky_module模块,该模块是一个负载均衡模块,通过cookie实现客户端与后端服务器的会话保持,

Skynet基于Actor模式的开源框架

偶尔善良 提交于 2021-01-13 13:14:25
使用多进程解决高并发带来的问题是进程安全锁,框架经常会因为部分代码的报错而导致死锁或内存占用不释放等诸多问题。而使用单进程的服务器框架,通过线程池来做消息轮询和任务执行,能够避开锁带来的诸多问题。 框架的初衷 众核时代的并行编程 免费的晚餐已经结束了(The Free Lunch Is Over -- Herb Sutter, 2005) E5420(2.5GHz 2004) VS E5-2620v3(2.4GHz 2014) 我们获得了更多的核心、更多的线程、更大的缓存、更大的带宽。我们得不到更高的主频。 Erlang 1998年Erlang开源 2006年传入国内C++程序员圈 Erlang China User Group始于2007,现改名为Effective Cloud User Group 并行和分布式 Erlang采用的Actor模式使其增长并行处理,错误处理机制和储存管理为分布式服务,Erlang并不擅长存储密集型数值计算。 Actor模式 一切都是Actor 一切都是Object?并行的面向对象模式!创建actor/处理消息/发送消息。发送的消息和发送者解耦、异步通讯。 没有Actor的语言提供的框架 Akka by Scala、CAF: C++ Actor Framework by C++、Remact.Net by .net Skynet 2010 年想法

math library is missing in the latest update of Logitech G-Hub

和自甴很熟 提交于 2021-01-13 09:14:19
问题 local delay = math.random(25, 50) [string "LuaVM"]:5: attempt to index a nil value (global 'math') I can't use math.random anymore is there any way to fix this ? 回答1: If math library is missed you can insert the following code block at the beginning of your script. It will not fix the whole math library, but only some of the most frequently used functions (including math.random ). It will also fix the following errors: bad argument #1 to 'Sleep' (number has no integer representation) attempt

math library is missing in the latest update of Logitech G-Hub

好久不见. 提交于 2021-01-13 09:13:34
问题 local delay = math.random(25, 50) [string "LuaVM"]:5: attempt to index a nil value (global 'math') I can't use math.random anymore is there any way to fix this ? 回答1: If math library is missed you can insert the following code block at the beginning of your script. It will not fix the whole math library, but only some of the most frequently used functions (including math.random ). It will also fix the following errors: bad argument #1 to 'Sleep' (number has no integer representation) attempt

OpenResty/Nginx+Lua编程手册

て烟熏妆下的殇ゞ 提交于 2021-01-13 08:52:32
OpenResty(又称:ngx_openresty) 是一个基于 NGINX 的可伸缩的 Web 平台,由中国人章亦春发起,提供了很多高质量的第三方模块。 OpenResty 是一个强大的 Web 应用服务器,Web 开发人员可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,更主要的是在性能方面,OpenResty可以 快速构造出足以胜任 10K 以上并发连接响应的超高性能 Web 应用系统。 360,UPYUN,阿里云,新浪,腾讯网,去哪儿网,酷狗音乐等都是 OpenResty 的深度用户。 在公众号下,回复"ngxlua",返回201页的PDF下载链接。 本文分享自微信公众号 - 糖果的实验室(mycandylab)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“ OSC源创计划 ”,欢迎正在阅读的你也加入,一起分享。 来源: oschina 链接: https://my.oschina.net/u/4580416/blog/4695754

2021年十大开源waf介绍

喜欢而已 提交于 2021-01-10 12:45:25
开源waf是网络安全的重要部分,Cloudflare认为:十年后数字经济的网络安全基础设施会像水过滤系统一样普及,而这个过滤系统的核心就是waf。对于服务器来说,部署WEB应用防火墙十分重要,这方面的开源waf很多,但优秀的太少,笔者经过大量搜索,并结合市场热度,整理出2021年十大开源waf供大家参考。 1、OpenResty OpenResty 是由中国人章亦春发起,把nginx和各种三方模块的一个打包而成的软件平台,核心就是nginx+lua脚本语言。主要是因为nginx是C语言编写,修改很复杂,而lua语言则简单得多,国内很多大公司如360、京东、gitee等都在用来作为web应用防火墙。 项目地址: https://github.com/openresty/ 2、AIHTTPS aihttps是hihttps的升级版,也是由中国人编写。特点是兼容ModSecurity规则,并且已经向人工智能方向进化:使用机器学习自主生成对抗规则,来防御包括:漏洞扫描、CC 、DDOS、SQL注入、XSS等。其商业版也开源,是目前商业化开源程度最高的WAF。 项目地址: https://github.com/qq4108863/ 官网: http://www.hihttps.com 3、ModSecurity ModSecurity是开源WAF的鼻祖,是一个开源的跨平台Web应用程序防火墙