惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
B
Blog
博客园_首页
C
Check Point Blog
Microsoft Security Blog
Microsoft Security Blog
MyScale Blog
MyScale Blog
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
B
Blog RSS Feed
M
MIT News - Artificial intelligence
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
量子位
V
V2EX
Y
Y Combinator Blog
Hugging Face - Blog
Hugging Face - Blog
Martin Fowler
Martin Fowler
Recent Announcements
Recent Announcements
I
InfoQ
博客园 - 【当耐特】

祈雨的笔记

安全多方计算MPC spark原理解析 kueue执行源码分析 spark on k8s执行源码分析 spark-operator源码解析 系统压测遇到的缓存击穿问题 我的世界PC与安卓联机 蚂蚁金服流量投放平台的AIG改造 G1大对象致Old区占用率高 日志打印导致接口响应率下跌分析 Groovy加载类导致OOM分析 ERROR日志打印导致CPU满载 记OceanBase死锁超时 应用发版期间服务响应超时 Ark Serverless初探 系统优化复盘一二三 The user specified as a definer does not exist Kong网关初探 API网关选型调研 CPU火焰图常用工具 配置中心选型调研 root操作Nginx导致用户组错误 基于Proxifier使用代理 FastJSON字段智能匹配踩坑 Nacos初探 记一次Nginx服务器CPU满荷载故障 基于券系统分库分表的思考 limit不参与SQL成本计算致索引失效 Linux常用性能监控命令 golang低版本http2偶现400
Nginx+Lua环境搭建
祈雨的笔记 · 2018-12-15 · via 祈雨的笔记

直接安装

准备依赖

lua-nginx-module-0.10.13.tar.gz

ngx_devel_kit-0.3.0.tar.gz

LuaJIT-2.0.5.tar.gz

安装luajit

1
2
3
4
5
tar -zxvf LuaJIT-2.0.5.tar.gz
cd LuaJIT-2.0.5
make && make install PREFIX=/usr/soft/LuaJIT-2.0.5
export LUAJIT_LIB=/usr/soft/LuaJIT-2.0.5/lib
export LUAJIT_INC=/usr/soft/LuaJIT-2.0.5/include/luajit-2.0

准备模块

1
2
tar -zxvf lua-nginx-module-0.10.13.tar.gz
tar -zxvf ngx_devel_kit-0.3.0.tar.gz

安装nginx

1
./configure --prefix=/usr/soft/nginx --with-ld-opt="-Wl,-rpath,$LUAJIT_LIB" --add-module=/usr/soft/ngx_devel_kit-0.3.0 --add-module=/usr/soft/lua-nginx-module-0.10.13

如果编译nginx时没有加--with-ld-opt,会导致nginx在启动的时候会无法找到位于luajit内的类库,并输出如下错误信息:

1
error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory

查看nginx安装模块

1
2
cd /usr/soft/nginx
./sbin/nginx -V

测试

修改nginx配置文件conf/nginx.conf,添加如下配置

1
2
3
4
location /lua {
default_type 'text/html';
content_by_lua 'ngx.say("hello world")';
}

启动nginx

1
./sbin/nginx

通过curl访问http://localhost/lua后,nginx返回hello world则说明nginx+lua环境搭建完成。

通过OpenResty安装

准备OpenResty

OpenResty集成了nginx与大量精良的Lua库、第三方模块和大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态Web应用、Web服务和动态网关。

下载OpenResty

笔者使用的是
openresty-1.13.6.1.tar.gz

安装OpenResty

1
2
3
4
tar -zxvf openresty.tar.gz
cd openresty-1.13.6.1
./configure --prefix=/usr/soft/openresty
make && make install

目录说明

openresty/luajit:luajit环境,luajit类似于java的jit,即即时编译,lua是一种解释语言,通过luajit可以即时编译lua代码到机器代码,得到很好的性能

openresty/lualib:要使用的lua库,里边提供了一些默认的lua 库,如 redis,json库等,也可以把一些自己开发的或第三方的放在这

openresty/nginx:nginx安装路径

查看nginx安装模块

1
2
cd /usr/soft/openresty/nginx
./sbin/nginx -V

测试

修改nginx配置文件conf/nginx.conf,添加如下配置

1
2
3
4
location /lua {
default_type 'text/html';
content_by_lua 'ngx.say("hello world")';
}

启动nginx

1
./sbin/nginx

通过curl访问http://localhost/lua后,nginx返回hello world则说明nginx+lua环境搭建完成。