Maison > Questions et réponses > le corps du texte
Deux méthodes ont été utilisées pour enregistrer les journaux de réponses, mais les données des deux journaux se sont avérées tronquées. On soupçonne que les données dans la mémoire ont été enregistrées directement. Quelle en est la raison ?
La première façon :
En utilisant la méthode du maître yexiaobai, l'adresse source est la suivante :
/blog/yexiaobai/1190000000606867
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
log_format log_req_resp '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" $request_time
req_body:"$request_body" resp_body:"$resp_body"';
server {
listen 8088;
server_name localhost;
access_log /tmp/nginx.resp.access.log log_req_resp;
lua_need_request_body on;
set $resp_body "";
body_filter_by_lua '
local resp_body = string.sub(ngx.arg[1], 1, 1000)
ngx.ctx.buffered = (ngx.ctx.buffered or "") .. resp_body
if ngx.arg[2] then
ngx.var.resp_body = ngx.ctx.buffered
end
';
location / {
proxy_pass http://173.194.14.40/;
}
}
}
La deuxième façon :
location /test {
content_by_lua '
-- res = ngx.location.capture("http://173.194.14.57/")
local res = ngx.location.capture("/", { share_all_vars = true })
file = io.open("/tmp/capture.log", "a+")
file:write(res.body)
file:close()
-- ngx.var.resp_body = res.body
ngx.print(res_s)
';
}
location / {
proxy_pass http://173.194.14.40/;
}
我想大声告诉你2017-05-16 17:27:07
Résolu, solution :
error_log /tmp/nginx.resp.info.log info;
location / {
proxy_pass http://vpsea.flvcd.com/;
body_filter_by_lua 'ngx.log(ngx.INFO, ngx.arg[1])';
}