在nginx.conf中用access_by_lua和content_by_lua来引用lua脚本有什么区别?

问题描述 投票:0回答:1

我现在很困惑。我的代码在每次发送请求到 location /.

########nginx.conf

server {
        listen       8000;
        server_name  localhost;

    lua_code_cache on;

        location / {
            content_by_lua_file /path/to/file.lua;
        }       
    }

file.lua 对每个传入的http请求进行一些操作.如果我加入了 file.lua 通过 access_by_lua_file 而不是 content_by_lua_file?

如果这是一个愚蠢的问题,我道歉。请帮我学习:)

nginx lua nginx-config
1个回答
2
投票

每个处理不同的阶段。

https:/openresty-reference.readthedocs.ioenlatestDirectives#access_by_lua。

access_by_lua_file作为访问阶段处理程序,content_by_lua_file作为内容阶段处理程序。

请参考 http:/nginx.orgendocsdevdevelopment_guide.html#http_phases。

NGX_HTTP_ACCESS_PHASE - 验证客户机是否有权限发出请求的阶段,标准的nginx模块如ngx_http_access_module和ngx_http_auth_basic_module在此阶段注册处理程序。标准的nginx模块,如ngx_http_access_module和ngx_http_auth_basic_module都在这个阶段注册它们的处理程序。默认情况下,客户端必须通过本阶段注册的所有处理程序的授权检查,请求才能继续到下一阶段。如果任何一个阶段处理程序对客户端进行了授权,那么满足指令可以用来允许继续处理。

NGX_HTTP_CONTENT_PHASE 阶段。 - 通常生成响应的阶段,多个nginx标准模块在此阶段注册处理程序,包括ngx_http_index_module或ngx_http_static_module。多个nginx标准模块在此阶段注册它们的处理程序,包括ngx_http_index_module或ngx_http_static_module。它们依次被调用,直到其中一个产生输出。也可以根据每个位置来设置内容处理程序。如果 ngx_http_core_module 的位置配置中设置了处理程序,则作为内容处理程序被调用,在此阶段安装的处理程序将被忽略。

© www.soinside.com 2019 - 2024. All rights reserved.