기본적으로 Nginx
는 Lua
모듈을 지원하지 않습니다. LuaJIT
인터프리터를 설치하고 다시 컴파일해야 합니다. Nginx
또는 중국 사람들이 개발한 openrestry
를 사용할 수 있습니다. 필수 모듈: LuaJIT
, Ngx_devel
및 lua-nginx -module
Nginx
不支持Lua
模块,需要安装LuaJIT
解释器,并且重新编译Nginx
,或者可使用国人开发的openrestry
需要的模块:LuaJIT
,Ngx_devel
和lua-nginx-module
[root@nginx_lua ~]# yum install -y gcc gcc-c++ make pcre-devel zlib-devel openssl-devel
2. 下载最新的luajit
和ngx_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
luajit
및 ngx_devel_kit
및 lua를 다운로드합니다. -nginx- 모듈
unzipuser root root;
ngx_devel_kit
및 lua-nginx-module
rrreee4의 압축을 풀고 LuaJIT를 설치합니다. code>, 즉 <code>Lua
JIT 컴파일러
Nginx
6을 컴파일하고 설치합니다. Lua 설치를 성공적으로 테스트하세요
Nginx에서 lua 스크립트를 구성하고 액세스 URL은 항상 프롬프트 404입니다그런 다음 nginx의 error.log를 입력하고 다음 오류 로그를 찾으세요🎜2022/06/09 18:31:46 [error] 24475# 24475: *5 외부 Lua 파일 "/root/lua /68/update_content.lua"를 로드하지 못했습니다: /root/lua/68/update_content.lua를 열 수 없습니다: 권한이 거부되었습니다. 클라이언트: 112.4.254.104, 서버: localhost, 요청 : "GET /api/update_content HTTP/1.1", 호스트: " 호스트"🎜🎜🎜그런 다음 nginx.conf에서 🎜rrreee🎜를 구성한 다음 nginx를 다시 시작하세요🎜
위 내용은 Nginx에 대한 Lua 지원을 설치하고 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!