Nginx怎么安装配置Lua支持

发布时间 - 2023-06-02 00:00:00    点击率:

Nginx安装配置Lua支持

默认情况下nginx不支持lua模块,需要安装luajit解释器,并且重新编译nginx,或者可使用国人开发的openrestry

需要的模块:LuaJIT,Ngx_devellua-nginx-module

1. 环境准备

[root@nginx_lua ~]# yum install -y gcc gcc-c++ make pcre-devel zlib-devel openssl-devel

2. 下载最新的luajitngx_devel_kit以及lua-nginx-module解压

[root@nginx_lua ~]# mkdir -p /soft/src 
[root@nginx_lua ~]# cd /soft/src/
wget https://luajit.org/download/LuaJIT-2.0.4.tar.gz
wget https://github.com/simpl/ngx_devel_kit/archive/v0.2.19.tar.gz
wget https://github.com/openresty/lua-nginx-module/archive/v0.10.13.tar.gz

3. 解压ngx_devel_kit以及lua-nginx-module

[root@nginx_lua src]# tar xf v0.2.19.tar.gz
[root@nginx_lua src]# tar xf v0.10.13.tar.gz

4. 编译安装LuaJIT,即Lua及时编译器

[root@nginx_lua src]# tar xf LuaJIT-2.0.4.tar.gz
[root@nginx_lua src]# cd LuaJIT-2.0.4/
[root@nginx_lua LuaJIT-2.0.4]# make && make install

5. 编译安装Nginx

[root@nginx_lua src]# wget http://nginx.org/download/nginx-1.14.2.tar.gz
[root@nginx_lua src]# tar xf nginx-1.14.2.tar.gz
[root@nginx_lua src]# cd nginx-1.14.2
[root@nginx_lua nginx-1.14.2]# ./configure --prefix=/soft/nginx --with-http_ssl_module --with-http_stub_status_module --with-http_dav_module --with-file-aio --with-http_dav_module --add-module=../ngx_devel_kit-0.2.19/ --add-module=../lua-nginx-module-0.10.13/
[root@nginx_lua nginx-1.14.2]# make && make install
[root@nginx_lua nginx-1.14.2]# ln -s /soft/nginx/sbin/nginx /usr/bin/nginx
[root@nginx_lua conf]# vim nginx.conf  #简单配置写nginx测试Nginx是否已经支持Lua(lua指令方式)
...
server {
 location /test_lua {
                default_type text/html;
                content_by_lua_block {
                        ngx.say("Hello Lua!") 
                }
        }
...
}
#lua指令方式
#在server 中添加一个localtion
location /hello {
            default_type 'text/plain';
            content_by_lua 'ngx.say("hello, lua")';
        }
#lua文件方式
#在server 中添加一个localtion
location /lua {
    default_type 'text/html';
    content_by_lua_file conf/lua/test.lua; #相对于nginx安装目录
}
#test.lua文件内容
ngx.say("hello world");
//建立软连接,如果不建立软链接,则会出现share object错误
[root@nginx_lua conf]# nginx -t
/soft/nginx/sbin/nginx: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory
[root@nginx_lua conf]# 
[root@nginx_lua lib64]# ln -s /usr/local/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2
[root@nginx_lua lib64]# ll libluajit-5.1.so.2
lrwxrwxrwx 1 root root 33 Dec 21 20:52 libluajit-5.1.so.2 -> /usr/local/lib/libluajit-5.1.so.2
[root@nginx_lua lib64]#
#//加载lua库,加入到ld.so.conf文件(暂时不执行这一步)
#[root@nginx_lua nginx-1.14.2]# echo "/usr/local/LuaJIT/lib" >> /etc/ld.so.conf
[root@nginx_lua conf]# nginx -t
nginx: the configuration file /soft/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /soft/nginx/conf/nginx.conf test is successful
[root@nginx_lua conf]# nginx -s reload

6. 测试安装Lua成功

Nginx中配置lua脚本,访问url总是提示404

然后进入nginx的error.log中发现了以下错误日志

2025/06/09 18:31:46 [error] 24475#24475: *5 failed to load external Lua file "/root/lua/68/update_content.lua": cannot open /root/lua/68/update_content.lua: Permission denied, client: 112.4.254.104, server: localhost, request: "GET /api/update_content HTTP/1.1", host: "your host"

然后在nginx.conf中配置

user root root;

再重启nginx即可


# nginx  # 不支持  # 相对于  # 重启  # 则会  # 暂时不  # 安装目录  # 发现了  # 情况下  # 加载  # 这一步 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 网站图片在线制作软件,怎么在图片上做链接?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  如何在橙子建站上传落地页?操作指南详解  如何在 React 中条件性地遍历数组并渲染元素  javascript日期怎么处理_如何格式化输出  Android Socket接口实现即时通讯实例代码  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  EditPlus中的正则表达式 实战(4)  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  如何在 Pandas 中基于一列条件计算另一列的分组均值  公司网站制作价格怎么算,公司办个官网需要多少钱?  详解jQuery中的事件  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  如何利用DOS批处理实现定时关机操作详解  ,南京靠谱的征婚网站?  如何注册花生壳免费域名并搭建个人网站?  如何在IIS7上新建站点并设置安全权限?  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  Java解压缩zip - 解压缩多个文件或文件夹实例  Python高阶函数应用_函数作为参数说明【指导】  Laravel如何使用Gate和Policy进行授权?(权限控制)  *服务器网站为何频现安全漏洞?  个人网站制作流程图片大全,个人网站如何注销?  详解CentOS6.5 安装 MySQL5.1.71的方法  中山网站制作网页,中山新生登记系统登记流程?  专业商城网站制作公司有哪些,pi商城官网是哪个?  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  Laravel怎么使用artisan命令缓存配置和视图  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  Java遍历集合的三种方式  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  浅谈javascript alert和confirm的美化  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  如何在建站之星绑定自定义域名?  如何在IIS中新建站点并配置端口与IP地址?  Laravel如何自定义错误页面(404, 500)?(代码示例)  如何获取PHP WAP自助建站系统源码?  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  如何用5美元大硬盘VPS安全高效搭建个人网站?  Linux系统运维自动化项目教程_Ansible批量管理实战  php 三元运算符实例详细介绍  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧