OpenResty 历险记

OpenResty Markdown PostgreSQL About 1,379 words

背景介绍

由于后端服务运行在1核1G云机上,跑着Nginxphp-fpmMongoDBElasticsearchRedisSwap2G内存(自我安慰)。

到了每天阿里云扫描时段,短信告警一条接一条,CPU直接100%

机器瓶颈

发现php-fpm占用了5个进程,每个进程大约100M内存,导致Es只限制了250M的内存上限,MongoDB更是只有150MNginxRedis一直在角落里瑟瑟发抖,OMG!

高级武器

OpenResty 的目标是让你的Web服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应。

以前就了解过OpenRestyKong网关知乎静态资源CSDN等这些都是基于OpenResty。有这么多企业选择它,那我也就跟随大部队,追星一把。

陷入困境

经过几天的摸索,MongoDB可以由lua-resty-mongol实现连接,Redis由内置模块支持,页面渲染由lua-resty-template模板引擎可以搞定,但是有一个问题三天还没有解决。

将以Markdown标记的文章,转换为HTML的库有:

  • bungle/lua-resty-hoedown: bungle大佬作品,需要依赖Hoedown动态库(博主在Windows平台尝试多种方式未编译通过,*nix平台可以编译),末次更新2015/12
  • mpeterv/markdown.lua: 纯Lua语言实现,但渲染代码块有问题,末次更新2015/09
  • asb/lua-discount: C语言实现,需依赖Linux中的Discount(yum/apt-get安装),无法在Windows调试开发,末次更新2010/05
  • jgm/lunamark: jgm出品,Windows平台多次尝试未安装成功,末次更新2019/05

目前还没有Windows平台可用的MarkdownHTML的解决方案。(针对Lua语言而言。)

整装待发

项目后端打算使用OpenResty + PostgreSQL替换PHP + MongoDBMongoDB的数据同步将通过PostgreSQLFDW功能完成。

希望能一路顺利,少踩坑。

OpenResty见。

后记

2021/02/15更新上线,历时一年。MarkdownHTML最后选择由前端JavaScriptmark.js 转换。

技术栈

开源地址

https://github.com/fendoudebb/z-blog-openresty

Views: 3,238 · Posted: 2020-02-15

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb/LiteNote

扫描下方二维码关注公众号和小程序↓↓↓

扫描下方二维码关注公众号和小程序↓↓↓


Today On History
Browsing Refresh