下面是一个简单的OpenResty配置文件示例,展示了如何使用log_by_lua指令来自定义日志记录。
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
server {
listen 80;
location / {
proxy_pass http://backend_server;
log_by_lua_block {
-- 自定义日志记录逻辑
-- 获取请求信息
local request_method = ngx.var.request_method
local request_uri = ngx.var.request_uri
-- 获取响应状态码和响应时间
local status = ngx.var.status
local response_time = ngx.var.request_time
-- 构造日志信息
local log_message = string.format("[%s] %s - Status: %d, Response Time: %.2fms", os.date("%Y-%m-%d %H:%M:%S"), request_uri, status, response_time*1000)
-- 记录日志到文件或其他存储介质
local file = io.open("/path/to/logfile.txt", "a")
file:write(log_message .. "\n")
file:close()
}
}
}
}
在这个示例中,我们通过log_by_lua_block指令定义了一个Lua代码块,用于自定义日志记录。具体操作包括:
- 使用
ngx.var
全局变量获取请求相关的信息,比如请求方法、请求URI等。 - 使用
os.date
函数获取当前时间,并结合其他信息构造出要记录的日志消息。 - 将日志消息写入到指定的文件或其他存储介质中。
请根据实际需求进行适当修改和扩展,比如可以将日志消息发送到远程日志服务器、使用更复杂的日志格式等。
内容由零声教学AI助手提供,问题来源于学员提问