Nginx 集成 lua 模块扩展功能,以及遇到的一些问题

Nginx 集成 lua 模块扩展功能,以及遇到的一些问题,第1张

时间 2021-11-18

文章中使用的服务器环境为 CentOS 7.6 阿里云的镜像, nginx 为 yum 安装的1.20.1版本, luajit 这个是lua 的编译器 版本为 2.0.2, lua-nginx-module 版本为0.10.15

成功打印hello word

nginx + lua 可以直接把nginx的可扩展性拉上了一个不敢想象的层次,你可以使用各种lua的模块来实现一些复杂的功能,使nginx成为一个可以都独当一面的存在。喜欢折腾而且nginx已经运行一段时间的可以使用以上的方法,如果初次接触nginx就有这方面的需求的话建议直接使用 OpenResty® - 中文官方站 国人大佬开发的一个基于 nginx + lua 的web平台,可以省去折腾的麻烦。

在原生的nginx,他不可以动态加载模块,所以当你安装第三方模块的时候需要覆盖nginx文件.nginx第三方模块安装方法如下:

/configure --prefix=/你的安装目录 --add-module=/第三方模块目录

以安装pagespeed模块实例

在未安装nginx的情况下安装nginx第三方模块

# ./configure --prefix=/usr/local/nginx-1.4.1 \

--with-http_stub_status_module \

--with-http_ssl_module --with-http_realip_module \

--with-http_image_filter_module \

--add-module=../ngx_pagespeed-master --add-module=/第三方模块目录

# make

# make isntall

# /usr/local/nginx-1.4.1/sbin/nginx

在已安装nginx情况下安装nginx模块

# ./configure --prefix=/usr/local/nginx-1.4.1 \

--with-http_stub_status_module \

--with-http_ssl_module --with-http_realip_module \

--with-http_image_filter_module \

--add-module=../ngx_pagespeed-master

# make

# /usr/local/nginx-1.4.1/sbin/nginx -s stop

# cp objs/nginx /usr/local/nginx/sbin/nginx

# /usr/local/nginx-1.4.1/sbin/nginx

相比之下仅仅多了一步覆盖nginx文件.

总结,安装nginx安装第三方模块实际上是使用–add-module重新安装一次nginx,不要make install而是直接把编译目录下objs/nginx文件直接覆盖老的nginx文件.如果你需要安装多个nginx第三方模块,你只需要多指定几个相应的–add-module即可.

对于nginx官网提供的windows版本的nginx仅仅是一个已经编译好的nginx的zip包而已,因此对于这个下载的nginx版本,是没有办法对nginx添加模块的。

可以看一下差,nginx是否支持windows下的编译(由于很久没有使用windows了,所以么有在windows下编译过,题主可以试验一下)。如果可以支持windows平台的编译,则添加模块就比较简单,和linux平台类似,编译时,增加--add_module=xxx就可以了。如果nginx不支持windows平台的编译,则就没有办法在windows平台下给nginx增加模块了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7958031.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存