当前 15,共 26 页
2017-09-12
我需要用 Lua 处理一个与时间相关的问题,比如我们在配置文件里面配置一个日期 (北京时间),然后在 Openresty 里面判断当前时间是否在这个日期之前或者之后来做对应的逻辑。
Lua 的时间处理还有点麻烦,主要是自带的相关库函数比较少。
os.time() &l ......
2017-08-22
有时候我们想学一门编程语言,但是光看看书和代码用例总是找不到感觉,这时候我们应该尝试写点不短不长的程序片段,可能是一个函数,或者是实现一个简单的算法。最近我发现这个叫做exercism.io的网站不错,自己也在闲余时间在上面看看。
这里支持 30 多种编程语言,每种语言大概有 80 个左右的小问题, ......
2017-08-12
昨天看到自己的 Blog 在移动端显示丑死了,所以想着优化一下,找一个 mobile first 的风格试试。顺便把 blog 从 jekyll 换成了 Hexo。最后找到这个 hexo 的主题非常顺眼,便拿来用了,感谢yanm1ng为大家提供如此优秀的主题。回想起自己之前用过搜狐博客,然后是 yo ......
2017-07-23
Kong 的缓存更新很多依赖于事件,而事件看起来是相对来说比较复杂、也是最有趣的一部分。
worker 模型
假设我们对 Kong 做了一个更改的请求,这个请求通常是通过 admin_api 这个路由处理的。也就是说最终执行数据库操作的动作是在一个 Nginx worker 进程里。因为操作了数据库 ......
2017-07-22
Nginx 里的缓存使用
在 Kong 里面我们缓存的内容大部分是配置,不管是 API 本身的配置还是插件相关的配置,缓存之后就存储在内存中。
Kong 里的缓存基础代码在 tools/database_cache.lua 文件里面。这里又分两种类型的缓存,一种是shared dict, 一种是使用 ......
2017-07-16
插件的强大之处
在我自己使用 Kong 的过程中,最方便的还是在于 Kong 的强大的插件机制。Nginx 本身提供了提供模块开发机制,但是相对来说更底层一些,并且需要使用 C/C++ 来开发,对于很多开发人员来说 Nginx 仍为一个黑盒。OpenResty 集成了很多好用插件,并提供了通过 Lu ......
2017-07-07
Kong 的初始化过程
安装好 Kong 之后我们是用命令sudo ./bin/kong start -c kong.conf -vv来启动。其中 kong.conf 为配置文件,-vv选项打印出一些重要信息展示出来,方便发现问题。
可以看到./bin/kong是一个脚本,是用的#!/usr/loc ......
2017-07-02
缘由
最近在工作上接触了Kong这个开源项目,因为我们内部做微服务化重构,所以导致系统相互间通信比较复杂,如果想做一些涉及各个系统的功能就很困难。比如我们前段时间实现的灰度系统就把人折腾得很惨。因为我们的设计中有一些 http header 需要在各个系统之间传递。每个项目的 Nginx 里面都用了 ......
2017-06-27
之前我用过一段时间 Kindle,因为没有使用保护套导致在书包里面被压坏。而后一两年用 IPad 看了一些电子书,始终觉得稍微有些笨重,而且看久了眼睛不舒服。前段时间在 z.cn 上瞎逛又有了买个 Kindle 的欲望,拿到手后又好好找了一些电子书比较多的网站。目前使用最舒服的还是 http://r ......
2017-05-22
OpenResty
最近用 OpenResty 比较多,除了一些业务逻辑的实现也做了 AB 组灰度相关的实现。OpenResty 是在 Nginx 基础上做的扩展,应该算是国人开源项目中很成功的一个。在做的过程中写了不少 Lua 代码,写 Lua 代码的体验就是库好少,语言好简单。
OpenRest ......