我现在很困惑。我的代码在每次发送请求到 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
?
如果这是一个愚蠢的问题,我道歉。请帮我学习:)
每个处理不同的阶段。
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 的位置配置中设置了处理程序,则作为内容处理程序被调用,在此阶段安装的处理程序将被忽略。