nginx lua access_by_lua_file设置变量无变化

  作者:会飞的

nginxlua设置变量无变化目前通过其他方式实现的设置变量无变化的问题:nginxaccess_by_lua_file/lua目录/index.lua;error_page403/403.html;location=/403.html{if($foo=1){return403"$htmlother";}return403"$html403";}location/{set$foo"";set$html404"
nginx lua设置变量无变化


目前通过其他方式实现的设置变量无变化的问题:

nginx
 access_by_lua_file /lua目录/index.lua;
 error_page 403 /403.html;
 location = /403.html {
     if ( $foo = 1){
          return 403 "$htmlother";
     }
    return 403 "$html403";
 }

location / {

    set $foo "";
    set $html404 "";
    set $html403 "";

}



index.lua
ngx.var.foo = 0;
ngx.var.html403 = 'html';
ngx.var.htmlother = 'htmlother';
ngx.exit(ngx.HTTP_FORBIDDEN)

补充:
我找了其他的一些网站资料,不过是使用rewrite_by_lua_file(set $foo "";  #主要修改这里,把设置的变量为空),这个只能在location
里面增加,而我需要控制全局变量所以在access_by_lua_file,就不生效了,另外发现一个问题就是通过网上(set $foo "";)提供的设置方法后在nginx里面可以用echo打印出来,但是if
是无法判断出来的,不知为何,据听说if在rewrite_by_lua_file后才加载,目前还没懂明白的运行机制,


有用  |  无用

猜你喜欢