1、下载
VM环境:ubuntu 16
http://openresty.org/cn/download.html
我选择的是截图红框的那个版本,其他高级的版本,我编译的时候都会报错,所以选择了这个版本,大家编译失败的时候不要放弃,继续选择其他版本编辑即可。
2、解压然后编译
./configure --prefix=/usr/local/openresty1.15.8
# 之前遇到一个报错,我这样解决了
# ./configure --prefix=/usr/local/openresty1.15.8 --without-http_rewrite_module
make
make install
安装后的目录
如果本地有启动其他nginx,为了防止冲突,需要在conf目录里修改下配置,端口,我这里修改为81
启动:./nginx -c /usr/local/openresty1.15.8/nginx/conf/nginx.conf
3、测试加载lua代码
http {
...
# 不缓存lua代码,修改lua及时生效,但是每次请求会加载lua代码,牺牲了性能,
# 所以测试阶段开始关掉。默认是开启的。
lua_code_cache off;
server {
location /lua {
default_type text/html;
content_by_lua_file lua/main.lua;
}}
}
修改完后重启,会有提示。
在 nginx根目录下创建lua目录,/usr/local/openresty1.15.8/nginx/lua,进入lua目录创建
vim main.lua
ngx.say("hello !")
重启nginx
../sbin/nginx -s stop
../sbin/nginx -c /usr/local/openresty1.15.8/nginx/conf/nginx.conf
4、lua获取用户请求header
local headers = ngx.req.get_headers()
ngx.say("Host : ", headers["Host"],"<br/>")
ngx.say("user-agent : ", headers["user-agent"], "<br />")
ngx.say("user-agent : ",headers.user_agent, "<br/>")
for k,v in pairs(headers) do
if type(v) == "table" then
ngx.say(k," : ", table.concat(v, "."),"br/>")
else
ngx.say(k," : ", v, "br/>")
end
end
5、获取用户请求post参数
ngx.say("post args", "<br/>")
ngx.req.read_body()
local args = ngx.req.get_post_args()
for k,v in pairs(args) do
if type(v) == "table" then
ngx.say(k," : ", table.concat(v, "."),"<br/>")
else
ngx.say(k," : ", v, "<br/>")
end
end
你学会了吗?欢迎留言评论,共同进步