专业网站制作推荐,电子商务营销网站建设,手机 wordpress,旌阳区黄河开发建设网站目录 已安装了nginx#xff0c;后追加lua模块nginx 重新编译知识参考#xff1a; 从零安装一、首先需要安装必要的库#xff08;pcre、zlib、openssl#xff09;二、安装LUA环境及相关库 #xff08;LuaJIT、ngx_devel_kit、lua-nginx-module#xff09;注意#xff1a;… 目录 已安装了nginx后追加lua模块nginx 重新编译知识参考 从零安装一、首先需要安装必要的库pcre、zlib、openssl二、安装LUA环境及相关库 LuaJIT、ngx_devel_kit、lua-nginx-module注意 ltkj nginx-v1.21 不能使用 lua-nginx-module-v0.10.8 三、安装Nginx四、测试验证 nginx配置server以后我们可以很方便的直接访问到文件服务器上的文件资源但是某些情况下文件资源可能是隐私图片比如客户注册时上传的身份证照片等等这时候我们需要对图片访问进行控制必须登录后才能查看到这些隐私图片。
一般来说我们都是通过后端controller对权限进行控制但是nginx作为图片服务器的情况下再专门为此写一个后端程序显然比较笨重。所以根据实际情况我们采用openresty平台用lua脚本redis读取token的方式即可完成对图片访问服务器的权限控制。 ——————————————— 下面将演示如何配置nginx 及lua
已安装了nginx后追加lua模块
nginx 重新编译知识参考
https://blog.csdn.net/nalanxiaoxiao2011/article/details/133753090
从零安装
一、首先需要安装必要的库pcre、zlib、openssl
1、安装gcc可通过“gcc -v”查看是否已经安装
GCCGNU Compiler CollectionGNU编译器套件是由GNU开发的编程语言编译器包括C、C、Objective-C、Fortran、Java、Ada和Go语言前端也包括这些语言的库如libstdclibgcj等。
sudo yum -y install gcc2、安装pcre
pcre是一个perl库包括perl兼容的正则表达式库nginx的http模块使用pcre来解析正则表达式。
sudo yum install -y pcre pcre-devel3、安装zlib
zlib库提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip。
sudo yum install -y zlib zlib-devel4、安装openssl
openossl是一个开放源代码的软件库包nginx使用该库以支持https协议。
sudo yum install -y openssl openssl-devel二、安装LUA环境及相关库 LuaJIT、ngx_devel_kit、lua-nginx-module
1、安装LuaJIT
LuaJIT是Lua的即时编译器使用C语言编写兼容标准Lua 5.1。LuaJIT的运行效率比标准的Lua高出数倍因为JIT技术完全媲美使用C/C代码。
cd /usr/local/soft #下载到/usr/local/soft目录中 1-1 安装包安装
sudo wget -c http://luajit.org/download/LuaJIT-2.0.4.tar.gz
sudo tar -xzvf LuaJIT-2.0.4.tar.gz
cd LuaJIT-2.0.4
sudo make install PREFIX/usr/local/luajit1-2 源码安装 https://luajit.org/install.html
官方网站:https://github.com/openresty/lua-nginx-module
1. yum install git
2. git clone https://luajit.org/git/luajit.git
3. make make install 或者 make make install PREFIX/usr/local/luajit
4. whereis lua 2、下载ngx_devel_kit
ngx_devel_kitNginx Devel Kit简称NDK是一种Nginx模块旨在扩展Nginx webserver的核心功能可以作为其它Nginx模块的基础。
cd /usr/localsoft #下载到/usr/local目录中sudo wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz
sudo tar -xzvf v0.3.0.tar.gz3、下载lua-nginx-module lua-nginx-module也是一个Nginx模块它将Lua的功能嵌入到Nginx HTTP Server中。同时这个模块是OpenResty的核心组件OpenResty是一个通过Lua扩展NGINX实现的可伸缩的Web平台。
注意 ltkj nginx-v1.21 不能使用 lua-nginx-module-v0.10.8
在编辑 nginx 阶段报错如下 ginx 编译出错:ngx_chain_t’赋值给‘struct ngx_buf_t *’时类型不兼容
./lua-nginx-module/src/ngx_http_lua_headers.c: 在函数‘ngx_http_lua_ngx_req_raw_header’中:
../lua-nginx-module/src/ngx_http_lua_headers.c:151:15: 错误将‘ngx_chain_t’赋值给‘struct ngx_buf_t *’时类型不兼容
b hc-busy[i];
^
../lua-nginx-module/src/ngx_http_lua_headers.c:227:15: 错误将‘ngx_chain_t’赋值给‘struct ngx_buf_t *’时类型不兼容
b hc-busy[i];
^
make[1]: *** [objs/addon/src/ngx_http_lua_headers.o] 错误 1
make: *** [build] 错误 2cd /usr/local/soft #下载到/usr/local/soft目录中wget https://github.com/openresty/lua-nginx-module/archive/v0.10.9rc7.tar.gz
tar -xzvf v0.10.9rc7.tar.gz## 已过期
wget https://github.com/openresty/lua-nginx-module/archive/v0.10.8.tar.gz
tar -xzvf v0.10.8.tar.gz三、安装Nginx
1、配置LuaJIT环境变量
su #切换到root用户
输入root用户Passwordexport LUAJIT_LIB/usr/local/luajit/lib
export LUAJIT_INC/usr/local/luajit/include/luajit-2.02、下载nginx-xxx.tar.gz 并解压 参考https://blog.csdn.net/nalanxiaoxiao2011/article/details/131856112 3、编译、安装root权限下 参考同上。
四、测试验证
1、使用lua指令的方式。 在/usr/local/nginx/conf/nginx.conf中加入如下代码
#在server中添加一个location
location /hello_lua {default_type text/plain;content_by_lua ngx.say(hello, lua);
}
2、或者使用lua文件的方式。 在/usr/local/nginx/conf/nginx.conf中加入如下代码
#在server中添加一个location
location /lua_file {default_type text/html;content_by_lua_file conf/lua/test.lua; #在nginx安装目录下开始
}然后编辑test.lua文件
ngx.say(hello, world, from lua conf/lua/test.lua file);3、启动nginx注意有没有报错
sudo ln -s /usr/local/nginx/sbin/nginx usr/sbin/nginx #先做一下软连接以便后续可以方便地执行nginx相关命令
sudo nginx注如果启动nginx报如下错误
nginx: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory可通过以下方式解决然后再启动nginx 方法一 sudo ln -s /usr/local/luajit/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2方法二 sudo vi /etc/ld.so.conf.d/libc.conf
#在libc.conf中增加如下代码然后保存退出
/usr/local/luajit/lib #这里对应自己安装的luajit目录
#退出后执行如下命令
sudo ldconfig
sudo ln -s /usr/local/luajit/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.24、http测试 访问“http://127.0.0.1/hello_lua” 显示“hello, lua”访问“http://127.0.0.1/lua_file” 显示“hello, world, from lua conf/lua/test.lua file”五、至此安装成功。