openresty

OpenResty学习指南(一)

做~自己de王妃 提交于 2020-02-06 00:09:19
我的博客: https://www.luozhiyun.com/archives/217 想要学好 OpenResty,你必须理解下面 8 个重点: 同步非阻塞的编程模式; 不同阶段的作用; LuaJIT 和 Lua 的不同之处; OpenResty API 和周边库; 协程和 cosocket; 单元测试框架和性能测试工具; 火焰图和周边工具链; 性能优化。 你不应该使用任何 Lua 世界的库来解决上述问题,而是应该使用 cosocket 的 lua-resty-* 库。Lua 世界的库很可能会带来阻塞,让原本高性能的服务,直接下降几个数量级。 OpenResty阶段 和nginx一样,都有阶段的概念,并且每个阶段都有自己不同的作用: set_by_lua,用于设置变量; rewrite_by_lua,用于转发、重定向等; access_by_lua,用于准入、权限等; content_by_lua,用于生成返回内容; header_filter_by_lua,用于应答头过滤处理; body_filter_by_lua,用于应答体过滤处理; log_by_lua,用于日志记录。 OpenResty 的 API 是有阶段使用限制的。每一个 API 都有一个与之对应的使用阶段列表,如果你超范围使用就会报错。 具体的API可以查阅文档: https://github.com

[原创]CentOS7编译安装OpenResty1.15.8.2(填坑之旅)

故事扮演 提交于 2020-02-03 23:31:47
原创文章,转载请注明出处: https://blog.51cto.com/indian/2445786 一、安装前置环境 1、编译工具安装 yum install -y epel-release yum install -y gcc gcc-c++ curl 2、调整系统时区 date timedatectl sudo timedatectl set-timezone Asia/Shanghai sudo dnf install -y chrony 3、其它自己需要的工具 yum install -y vim man tree screen wget bash-completion tcp_wrappers lrzsz 二、openresty编译安装 1、依赖库 您必须将这些库 perl 5.6.1+, libpcre, libssl安装在您的电脑之中。 对于 Linux来说, 您需要确认使用 ldconfig 命令,让其在您的系统环境路径中能找到它们。 yum install pcre-devel openssl-devel 2、设置专用用户和组及相关目录 groupadd www useradd -r -g www -s /sbin/nologin -M www mkdir -pv /data/{src,local}/ mkdir -pv /data/logs/nginx

Openresty: Make an http call with lua and return its parsed result

柔情痞子 提交于 2020-01-31 18:04:07
问题 My problem I am using openresty to build a simple server. Upon calling this server, it should make another call to a different server, fetch a JSON result, process it and return the parsed result. The server should be implemented in openresty for reasons beyond the scope if this question. Code error_log /dev/stdout info; events { worker_connections 14096; } http { access_log off; lua_package_path ";;/usr/local/openresty/nginx/?.lua;"; server { keepalive_requests 100000; proxy_http_version 1.1

Openresty: Make an http call with lua and return its parsed result

纵然是瞬间 提交于 2020-01-31 17:57:25
问题 My problem I am using openresty to build a simple server. Upon calling this server, it should make another call to a different server, fetch a JSON result, process it and return the parsed result. The server should be implemented in openresty for reasons beyond the scope if this question. Code error_log /dev/stdout info; events { worker_connections 14096; } http { access_log off; lua_package_path ";;/usr/local/openresty/nginx/?.lua;"; server { keepalive_requests 100000; proxy_http_version 1.1

Nginx学习之配置RTMP模块搭建推流服务

孤者浪人 提交于 2020-01-31 04:02:21
写在开始 小程序升级实时音视频录制及播放能力,开放 Wi-Fi、NFC(HCE) 等硬件连接功能。同时提供按需加载、自定义组件和更多访问层级等新特性,增强了第三方平台的能力,以满足日趋丰富的业务需求。 为更高效地连接用户与商家,小程序提供了实时音视频录制及播放组件。符合类目要求的小程序自助开通后,可自建或使用云服务,实现单向、双向甚至多向的音视频功能,如在线授课、远程咨询、视频客服,以及多人会议等。 2017-12-26微信小程序推送了这样一条消息,文档,代码也是简单的一笔带过,用户需要自建或使用云服务,实现单向、双向甚至多向的音视频功能。目前仅支持 flv, rtmp 格式。 本篇博客通过介绍使用nginx的rtmp模块来使nginx服务支持rtmp协议,可以完成推流和播放的功能。 开发环境 Linux (centos7),Nginx (openresty),nginx-rtmp-module 安装 由于之前已经安装过了openresty,详见 博文 。这里我们只需要安装nginx-rtmp-module模块即可。 下载并解压模块: wget https://github.com/arut/nginx-rtmp-module/archive/master.zip unzip master.zip 停止原来的Nginx服务: nginx -s stop 配置并编辑: .

Openresty 预编译安装教程

ぃ、小莉子 提交于 2020-01-31 02:50:19
openresty将nginx+lua进行了整合,由国人开发。 官网: http://openresty.org/cn/ 预编译安装 以CentOS举例 其他系统参照: http://openresty.org/cn/linux-packages.html 你可以在你的 CentOS 系统中添加 openresty 仓库,这样就可以便于未来安装或更新我们的软件包(通过 yum update 命令)。运行下面的命令就可以添加我们的仓库: yum install yum-utils yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo 然后就可以像下面这样安装软件包,比如 openresty: yum install openresty 如果你想安装命令行工具 resty,那么可以像下面这样安装 openresty-resty 包: sudo yum install openresty-resty openresty目录结构 来源: CSDN 作者: 学亮编程手记 链接: https://blog.csdn.net/a772304419/article/details/104114738

Nginx 和 OpenResty

最后都变了- 提交于 2020-01-25 21:46:14
Nginx 和 OpenResty 何大炮 关注 0.0972018.09.11 21:15:08字数 889阅读 9,046 Nginx Nginx 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。 1、处理响应请求很快 2、高并发连接 3、低的内存消耗 4、具有很高的可靠性: 5、高扩展性 6、热部署 master 管理进程与 worker 工作进程的分离设计,使得 Nginx 具有热部署的功能,可以在 7 × 24 小时不间断服务的前提下,升级 Nginx 的可执行文件。也可以在不停止服务的情况下修改配置文件,更换日志文件等功能。 7、自由的 BSD 许可协议 Nginx 日志主要有两种:access_log(访问日志) 和 error_log(错误日志)。 Nginx的location参数有具体的匹配规则: 首先精确匹配 = 其次前缀匹配 ^~ 其次是按文件中顺序的正则匹配 然后匹配不带任何修饰的前缀匹配。 最后是交给 / 通用匹配 当有匹配成功时候,停止匹配,按当前匹配规则处理请求 Nginx 静态文件服务:最重要的就是缓存,利用好了Nginx的缓存,我们就可以提高响应速度,同时在服务器宕机的时候返回缓存中的旧文件而不是500。 正向代理:客户端用到的代理服务器就是正向代理。 反向代理:隔绝服务器和所有客户端,接受所有客户端请求

架构设计(4)--API网关

夙愿已清 提交于 2020-01-24 19:41:00
1、前言 所在公司目前接入层是阿里云的SLB,然后经过Nginx+Lua转发到后端服务(Lua主要是限流)。 随着业务的发展,发现nginx配置越来越复杂,但又没有统一的管理,于是把Nginx这层改造成 基于 OpenResty的Nginx 应用的API Gateway 。于是上网总结和梳理网关相关知识。 问题: 由于我们使用的服务系统架构,所以没办法像传统单体应用一样依靠数据库的 join 查询来得到最终结果,那么如何才能访问各个服务呢? 按照微服务设计的指导原则,我们的微服务可能存在下面的问题: 服务使用了多种协议: 因为不同的协议有不同的应场景用,比如可能同时使用 HTTP, AMQP, gRPC 等。 服务的划分可能随着时间而变化。 服务的实例或者Host+端口可能会动态的变化。 那么,对于前端的UI需求也可能会有以下几种: 粗粒度的API,而微服务通常提供的细粒度的API,对于UI来说如果要调用细粒度的api可能需要调用很多次,这是个不小的问题。 不同的客户端可能需要不同的数据。Web,H5,APP,OpenAPI 不同设备的网络性能,对于多个api来说,这个访问需要转移的服务端会快得多 以上,就是我们构建微服务的过程中可能会遇到的问题。 2、概念 API Gateway(API GW / API 网关),顾名思义, 是企业 IT 在系统边界上提供给外部访问内部接口服务的

Lua学习过程

≯℡__Kan透↙ 提交于 2020-01-14 17:33:31
LUA入门 1) 以w3c文档为主线开展 https://www.w3cschool.cn/lua/lua-environment.html 2)安装以及语法使用: make linux test? 安装过程过程出现问题 编译中断。 make[2]: *** [lua.o] 错误 1 make[2]: 离开目录“/u02/lua-5.3.0/src” make[1]: *** [linux] 错误 2 make[1]: 离开目录“/u02/lua-5.3.0/src” make: *** [linux] 错误 2 [root@localhost lua-5.3.0]# [root@localhost lua-5.3.0]# sudo apt-get install libreadline-dev sudo: apt-get:找不到命令 执行 yum install libtermcap-devel ncurses-devel libevent-devel readline-devel 安装成功 重新安装成功 3)第一个helloword成功 4)Lua 基本语法 查找 安装openresty http://openresty.org/cn/linux-packages.html 5)CentOS 配置安装目录及需要激活的组件。使用选项 --prefix=install_path