Nginx 集成 lua 脚本|学习笔记

简介: 快速学习 Nginx 集成 lua 脚本

开发者学堂课程【大数据实战项目:反爬虫系统(Lua+Spark+Redis+Hadoop 框架搭建)第一阶段Nginx 集成 lua 脚本】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/669/detail/11606


Nginx 集成 lua 脚本

 

内容介绍

一.掌握 Nginx 集成 lua 的两种方式

二.总结

 

一. 掌握 Nginx 集成 lua 的两种方式

1. helloWorld

openresty1.9.3.1及以下版本,请使用 content_by_lua 命令;在 openresty1.9.3.2以上,content_by_lua 改成了 content_by_lua_block。可使用 nginx-V 命令查看版本号

首先,回到环境中:

 图片1.png

打开这个页面:图片2.png

这时 Nginx 自己的服务,lua 脚本的环境已经准备好,那么如何将 Nginx 和 lua 联系起来呢?

修改配置文件:

nginz 的配置文件 nginx.conf 中添加下列信息,然后执 nginx-s reload。

location/{

#root html;

#index index.html index.htm;

default_type text/html;

content_by_lua_block {

ngx.say("hello world");

}

}

图片3.png

[root@clintnode conf]#vi nginx.conf

图片4.png

找到 location,输入:

图片5.png

然后保存,用 block 的方式进行了输出。

将界面刷新,还是:

图片6.png

那么如何看到我们输出的 hello nginx 呢?每一次修改配置完,都需要重启 nginx:

图片7.png

重启后再来刷新这个界面,会提示一个下载的操作:

图片8.png是因为上面省略了一步,现在补上来解决这个问题:保存后重复重启操作,再次刷新界面:
图片9.png

这就是 nginx 集成方式的输出。

2. 123456789

如果是脚本集成要怎么办呢?我们也可以使用 content_by_lua_file 来引入一个 lua文件:

location/{

#root html;

#index index.html index.htm;

default_type text/html;

content by lua file /usr/local/openresty/nginx/conf/my.lua;

}

找到配置文件:

图片10.png

输入完 content_by_lua_file, 跟一个绝对路径,绝对路径到新的克隆的里面找:

图片11.png

做一个输出,在 lua 的脚本里:

Ngx.say(123456789),然后保存,绝对路径如图绿色框中:

图片12.png

将绝对路径复制,在配置文件中粘贴,把刚刚的脚本文件 test10 也粘贴,这样配置好的 lula 脚本就配置到了 nginx 文件当中。保存,再重启 nginx,没有报错:

再来刷新界面,就变成了:

图片13.png

这样就基本实现了 lua 脚本与 nginx 的配置文件的集成。

以上就是我们要学习的 lua 脚本与 nginx 的配置文件的集成的两种方法。

 

二. 总结

目标:掌握 Nginx 集成 Lua 的两种方式

1、第一种方式:通过代码块的方式集成

content_by_lua_block{

ngx.say("hello world")}

2、第二种方式:通过引入脚本的方式

content_by_lua_file /usr/local/openresty/test/mytest.lua

相关文章
|
3月前
|
应用服务中间件 Shell 开发工具
nginx+shell脚本实现一键启用与关闭停机维护页面
nginx+shell脚本实现一键启用与关闭停机维护页面
33 0
|
1月前
|
缓存 NoSQL Java
【Redis】5、Redis 的分布式锁、Lua 脚本保证 Redis 命令的原子性
【Redis】5、Redis 的分布式锁、Lua 脚本保证 Redis 命令的原子性
57 0
|
2月前
|
算法 NoSQL Java
springboot整合redis及lua脚本实现接口限流
springboot整合redis及lua脚本实现接口限流
65 0
|
13天前
|
NoSQL Java Redis
lua脚本做redis的锁
这段内容是关于使用Redis实现分布式锁的Java代码示例。`RedisLock`类包含`lock`和`unlock`方法,使用`StringRedisTemplate`和Lua脚本进行操作。代码展示了两种加锁方式:一种带有过期时间,另一种不带。还提到了在加锁和解锁过程中的异常处理,并提供了相关参考资料链接。
17 3
|
16天前
|
存储 NoSQL 数据处理
Redis Lua脚本:赋予Redis更强大的逻辑与功能
Redis Lua脚本:赋予Redis更强大的逻辑与功能
|
29天前
|
监控
通过Lua脚本实现禁止员工上班玩游戏的软件的自动化任务管理
使用Lua脚本,企业可以自动化管理员工行为,防止上班时间玩游戏。Lua是一种轻量级脚本语言,适合编写监控任务。示例脚本展示了如何检测工作时间内员工是否玩游戏,并在发现时执行相应操作,如关闭游戏或发送警告。此外,另一脚本演示了如何将监控数据通过HTTP POST自动提交到网站,以实现有效的行为管理。这种解决方案灵活且可定制,有助于提升工作效率。
98 1
|
1月前
|
NoSQL Java 数据库
优惠券秒杀案例 - CAS、Redis+Lua脚本解决高并发并行
优惠券秒杀案例 - CAS、Redis+Lua脚本解决高并发并行
|
1月前
|
Java API Maven
|
2月前
|
运维 应用服务中间件 Shell
Nginx安装与虚拟主机配置shell脚本
Nginx安装与虚拟主机配置shell脚本
27 0
|
2月前
|
NoSQL Java 数据处理
Redis和Spring Boot的绝佳组合:Lua脚本的黑科技
Redis和Spring Boot的绝佳组合:Lua脚本的黑科技
52 0