2018年8月24——怎样测试nginx+lua代码

2018-08-24  本文已影响0人  兔子Tony的主人

问题:

没有快速的测试,开发的过程将会非常麻烦,所以这里记录一下自己测试nginx+lua代码的经历

解决及优化过程:

用vim打开nginx.conf
编写代码
保存并关闭nginx.conf
然后重启nginx服务
然后在前端刷新浏览器进行测试。
如此循环往复。

打开编写lua代码的文件(只第一次打开,后边修改代码保存但不退出)
编写代码并保存,但是不退出。
然后再前端刷新浏览器进行测试。
如此,只是修改代码保存,然后测试,简单很多。

这里贴上相关配置的代码以及说明。

首先在nginx配置文件http{}内,配置如下一行代码
这个设置表示nginx不缓存lua文件的配置代码,这样处理每个请求,都是读取新的lua配置代码。
但是如果是生产环境,一定要配置为on,或者不配置默认为on,否则你网上查查就知道有什么不好了

lua_code_cache off;

然后写一个测试用的location,在这个location中引用lua文件

location /test {
    content_by_lua_file "/usr/local/openresty/nginx/conf/luacode";
}

这就配置完了,然后每次修改完lua文件,就可以直接测试了。

这里贴上我配置文件的所有代码


user  root;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    lua_code_cache off;
    
    server {
        listen      80;
        server_name localhost;
        location / {
            root    html;
            index   index.html index.htm;
        }
        error_page  500 502 503 504  /50x.html;
        location = /50x.html {
            root    html;
        }
        location ^~ /checklist {
            rewrite .* /index.html break;
            root html;
        }
        location ^~ /hotelproject {
            rewrite .* /index.html break;
            root html;
        }
        location ^~ /api {
            proxy_pass http://127.0.0.1:8095;
        }
        location /test {
            content_by_lua_file "/usr/local/openresty/nginx/conf/luacode";
        }
    }

}
#获取客户端从headers中用Access_Token
ngx.say("ok:Access_Token is ",ngx.var.http_access_token)
#使用lua的md5加密api
ngx.say(ngx.md5(ngx.var.http_access_token))
#ngx.time()获取时间戳,
#ngx.hmac_sha1("onestring","secret")将secret字符串用onestring加密为二进制值
#ngx.encode_base64()将二进制值转换为正常的字符串
ngx.say(ngx.time(),ngx.encode_base64(ngx.hmac_sha1("onestring","secret")))

同年8月27日补

如果是初次接触nginx+lua,那么肯定会像我一样,经常出错在所难免。那么怎么知道报错内容呢?看openresty安装目录中的nginx下的logs下的error.log的内容,就可以看到报错信息。
当然用tail -f error.log命令后,可以在测试后更直观的看到新的报错内容,这样更好。
这篇文章记录了我所遇到的所有报错。希望能帮助到大家。

上一篇 下一篇

猜你喜欢

热点阅读