Nginx অ্যাক্সেস লগ এ প্রতিক্রিয়া ডেটা লগ করা সম্ভব?


13

আমি বিকাশ / ডিবাগিংয়ের উদ্দেশ্যে প্রতিক্রিয়া ডেটা প্রিন্ট করার চেষ্টা করছি। আমি এই জাতীয় অনুরূপ প্রশ্ন বা কোনও তথ্য খুঁজে পাইনি। আপনি যদি করেন, একটি মন্তব্য যোগ করুন।


তুমি কি এরকম কিছু বোঝাতে চাও? stackoverflow.com/questions/4939382/...
টেলর Jasko

1
না এটি অনুরোধের বডি তবে আমি প্রতিক্রিয়া বডিটি বের করতে চাই। ধন্যবাদ।
ভামসু

উত্তর:


11

body_filter_by_luaএকটি nginx ভেরিয়েবলের জন্য অনুরোধের বডিটি বরাদ্দ করতে ব্যবহার করুন , এখানে একটি উদাহরণ রয়েছে:

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 8082;
        access_log logs/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 / {
            echo "Hello World!";
        }
    }
}

1
কোডটিতে, আমরা দেখেছি যে প্রতিক্রিয়া খণ্ডটি থেকে প্রথম 1000 বাইট লাগানো হবে এবং এই রেখায় "রেস_বিডি = স্ট্রিং.সুব (এনজিএক্স.আরগ [1], 1, 1000)" এ রেখাটি যুক্ত করা হবে।
এটির

আমার ক্ষেত্রে এটি আমাকে প্রতিক্রিয়া হিসাবে দেবে না তবে এটি আমাকে এই "রেসফিউডি:" "অ্যাক্সেস_লগ / ইউএসআর / লোকাল / ওপেনেরস্টি / এনগিনেক্স / লগস / অ্যাক্সেস.লগ স্ট্রিমলগ" এর মতো লগের পথ দিচ্ছে?
এসএমটি

3

ngx_lua মডিউলটি ব্যবহার করুন

এটার মত

body_filter_by_lua 'ngx.log(ngx.CRIT,ngx.arg[1])';

সঠিক ভাবে location


1
আমি ব্যবহার করতে পছন্দ করতাম ngx.DEBUG। CRIT কনসোলে মুদ্রিত হতে পারে, পুরো স্যাসাদমিন দলকে ইমেল করা ইত্যাদি ...
মাইকেল হ্যাম্পটন

0

আমি এটি উদাহরণস্বরূপ খুঁজে পেয়েছি এবং আমি মনে করি ইকো মডিউলটি এটিও করতে পারে।


2
ইকো মডিউল এবং উদাহরণটি অনুরোধ শিরোনাম / বডি লগ করার বিষয়ে আলোচনা সরবরাহ করেছিল তবে আমি প্রতিক্রিয়ার মূল অংশটিতে লগ করতে চাই। ধন্যবাদ পিটারমোলনার।
বামসু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.