好玩的Openresty

2024-03-27 21:08
文章标签 openresty 好玩

本文主要是介绍好玩的Openresty,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Openresty是国人发起的一个开源项目,大概看了一下,也体验了一下,在技术实现上,角度挺有意思的​。Openresty是基于Nginx的web服务器,有意思的是Openresty的思路是把web应用服务​集成到Nginx里面。大家都知道Nginx是通常配合Node.js、Go、PHP等后端技术一起使用,通过进程间通信或者socket完成一个完整的服务​。​

那么Openresty是怎么做的呢?Openresty通过把自己写的Nginx第三方模块和Lua语言整合到Nginx里,然后打出一个新包Openresty。类比Node.js,V8支持js语言,但是没有网络、文件等功能,Node.js基于V8拓展里这些功能,然后把V8和其他代码打包成Node.js成为一个新品。Nginx没有执行脚本的能力,Openresty基于Nginx,通过第三方模块把lua语言的能力整合进去,实现在Nginx里执行lua脚本代码。

通过Openresty,我们直接编写lua代码完成整个业务代码的逻辑,重点是在Openresty里我们具备了语言层面的能力,可以做的事件就不限于Nginx本身提供的。Openresty源码里包括了很多代码,其中很多第三方Nginx和lua模块,不过我们只关注原理。
在这里插入代码片
LuaJIT是lua语言的JIT编译器,据说速度惊人,Nginx就是Nginx内核,ngx_lua就是通过Nginx第三方模块的方式把lua整合到Nginx里。下面我们看看怎么使用。可以到官网下载源码。编译安装三步走。

./configure
make 
sudo make install

然后执行

mkdir openresty-test openresty-test/logs/ openresty-test/conf/

然后在conf新建一个配置文件nginx.conf。写入

worker_processes  2; 
events {worker_connections 1024;
}http {server {listen 8888;location / {default_type text/html;content_by_lua_block {ngx.say("Hi")}}}
}

然后执行

nginx -p openresty-test

这时候我们的Nginx就启动了,我们访问8888端口就会看到Hi的输出。我们看到Nginx配置里有一个content_by_lua_block指令,这个不是Nginx的内置指令,而是Openresty拓展的指令。当匹配到location里的路由时,Nginx的第三方模块就会调用lua的引擎执行content_by_lua_block里的lua脚本。有了lua的能力,Openresty可以做的事情比Nginx多了很多,再配合Nginx和luajit的高性能。就实现了一个灵活而又高性能的web服务器。比如我们可以使用Openresty做网关,实现转路由,鉴权、监控等功能。Openresty选用了lua语言,lua本身足够简单,而且很好地和底层语言的现成模块实现调用,减轻了开发成本。总的来说,我觉得Openresty是一个很酷又很有意思的项目。

这篇关于好玩的Openresty的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/853392

相关文章

OpenResty 概要及原理科普

点击上方“朱小厮的博客”,选择“设为星标” 后台回复"高效Java"领取《Effective Java第三版》 欢迎跳转到本文的原文链接:https://honeypps.com/architect/introduction-of-openresty/ OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依

来看看两种好玩的方法,扩展方法和分部方法

好久没过来扯淡了,话说这年头还有偶遇的事情吗?比如国庆回家的汽车上有个妹子要你qq,要你微信,想着法子跟你聊天,然后睡了一觉,醒来发现 肾不见了?小花絮小花絮,要是肾真没了,也吹不了牛,败不了火了,继续言归正传。   一:扩展方法        说到扩展方法,我想大家都已经再熟悉不过了,也许你的解决方案中有无数个这样的扩展方法,自从有了Linq之后,我们的集合就再也不单纯了。

Windows上nginx-openresty添加rtmp模块的方法

网上查找nginx-openresty添加rtmp模块的方法基本都是在Linux上的。但由于项目需要在Windows上使用nginx,无奈只好自己去找资料,在Windows上编译nginx-openresty同时加入rtmp模块。 一个基本的思路就是在Windows使用shell工具进行configure生成makefile然后使用mingw或cl进行编译生成。 其实openresty官方已经给出

10、Redis高级:多级缓存、JVM进程缓存、OpenResty本地缓存、缓存同步Canal

多级缓存 0.学习目标 1.什么是多级缓存 传统的缓存策略一般是请求到达Tomcat后,先查询Redis,如果未命中则查询数据库,如图: 存在下面的问题: •请求要经过Tomcat处理,Tomcat的性能成为整个系统的瓶颈 •Redis缓存失效时,会对数据库产生冲击 多级缓存就是充分利用请求处理的每个环节,分别添加缓存,减轻Tomcat压力,提升服务性能: 浏览器访问静态资源时

nginx变量+rewrite相关功能+反向代理+openresty

目录 1、nginx变量 (1)内置变量  示例 (2)自定义变量 示例 2、nginx中的rewrite模块功能 (1)ngx_http_rewrite_module 模块指令 1)if指令  示例 2)set指令  示例​编辑 3)break指令 示例 4)return指令 示例 (2)rewrite指令 1)rewrite flag 2)案例: 域名永久与

基于Redis和openresty实现高并发缓存架构

目录 概述缓存架构设计实践代码路由业务封装redis 效果 概述    本文是对项目中 QPS 高并发相关问题的一种解决方案,利用 Nginx 与 Redis 的高并发、超低延迟响应,结合 Canal 进行实现。 openrestry官网    当程序需要提供较高的并发访问时,往往需要在程序中引入缓存技术,通常都是使用Redis 作为缓存,如若再更进一步提升性能,不仅要使用

【网络安全的神秘世界】关于Linux中一些好玩的字符游戏

🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 佛祖保佑 把 motd 通过xtp拖到Linux中 liyang@Ubuntu2204:~$ cp motd /etc/motd #一定要放在etc下liyang@Ubuntu2204:~$ exit #退出,重新登录

openresty flamegraph samples

安装依赖systemtap https://blog.csdn.net/u011944141/article/details/89512116 下载火焰图绘制相关工具 cd /optsudo git clone https://github.com/openresty/nginx-systemtap-toolkit.gitsudo git clone https://github.com

openresty(Nginx) 301重定向域名 http访问强制使用https

1 访问http 2  修改配置访问 server {listen 80;server_name example.cn;return 301 https://$server_name$request_uri;access_log /data/logs/czgzzfjgsup_access.log access;error_log /data/logs/czgzzfjg_

《纪元 1800》好玩吗? 苹果电脑能玩《纪元 1800》吗?

《纪元1800》是一款不错的策略游戏,这款游戏因为画面和玩法独特深受玩家们的喜爱。下面我们来看看《纪元 1800》好玩吗,苹果电脑能玩《纪元 1800》吗的相关内容。 一、《纪元1800》好玩吗 《纪元1800》是一款备受瞩目的策略游戏。下面让我们来看看这款游戏的特点和玩法。 首先,从游戏的画面和音效上来看,《纪元 1800》绝对称得上是精美的。细腻的画面和生动的音效让玩家仿佛置身于19世纪