OpenResty 可以通过 lua 脚本扩展 nginx 功能,包括让你感觉 nginx 实现的不能满足你要求的功能,你都可以通过 OpenResty 来实现。

Nginx 本身是用 C 来编写的,但是为了实现一些自定义的特有的功能,你去重新学习一下 C 又不太现实,因此当你会 OpenResty 的时候,就可以派上用场了。lua 的学习成本相比 C 来说能低很多,而且 lua 在 Redis 中都有使用。因此我认为学习 OpenResty 是一个非常不错的选择,性价比非常的高。

今天给大家简单的介绍两个使用 OpenResty 的场景:实现负载均衡、限流。当然 OpenResty 的使用场景实在是太多,包括***方面的,比如 cc ***等。但这些内容建议大家私下里,感兴趣的自己去学习。

OpenResty 安装我就不讲了,我们先来看一个 hello World 的 demo,让我们熟悉它是怎么使用的。

在 nginx.conf 配置文件中,加入 content_by_lua 这段代码即可。

下面我们来看通过使用 OpenResty 配置,配合 lua 脚本来实现自己的负载均衡策略。

balancer.lua 里的代码你可以自己实现。下面给你一个我的 demo 代码。

负载均衡算法有很多,可以参考我的这篇文章《手把手教你写出 6 种负载均衡算法》。

最后再来看一个限流 demo,nginx.conf 中配置信息如下:

limit_conn.lua 中的代码也非常的简单,粘贴如下:

可以看到借助 Lua 这种脚本语言,结合 OpenRestry,想实现自定义的功能就显得很简单。

OpenResty 非常的强大,它还能操作 MySQL、PostgreSQL、Memcached 以及 Redis 等后端应用。如果你对它感兴趣,不妨加我微信好友 xttblog,我们一起精进!


©著作权归作者所有:来自51CTO博客作者mob604756f0e582的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 【故障处理】ORA-12545: Connect failed because target host or
  2. 实例演示flex容器中的四个属性的功能,参数,以及作用
  3. Zerodium公开Tor浏览器0day代码执行漏洞 被喷“不负责任”
  4. Kubernetes 并不适合大多数团队
  5. 苹果Mac轻量级音频编辑器: Fission 助你实现专业功能
  6. 在k8s集群部署SonarQube
  7. Git与GitLab
  8. 痞子衡嵌入式:开启NXP-MCUBootUtility工具的HAB签名功能 - CST(中
  9. 痞子衡嵌入式:开启NXP-MCUBootUtility工具的BEE/OTFAD加密功能 -

随机推荐

  1. Inotify: 高效、实时的Linux文件系统事件
  2. Linux 2.6.x 内核模块加载错误 “Invalid
  3. 在centos中安装了mysql5.7之后解决不知道
  4. Linux实验报告一
  5. Linux开发基础(1):开发板的挂载
  6. 使用Python+selenium实现第一个自动化测
  7. Linux学习笔记 --- xxx is not in the su
  8. 边学边干Linux内核指导(8)——进程调度
  9. linux下jboss7.1 启动,关闭脚本
  10. Linux中/proc目录下文件详解之(二)