Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
96
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

@hito3

nginxのログ出力変更

Webサーバ、nginx

nginxのaccess.log。デフォルトだと、POSTされたデータのMessageBodyが出力されない…。
何がPOSTされたのか見たい!ということがあったので、調べてみた。

設定ファイルの場所

/etc/nginx/nginx.conf

ログファイルの場所

/var/log/nginx/access.log

設定ファイル変更!

設定ファイル内のhttpコンテキストを変更します。
設定ファイルの中身は以下のURLを参考にさせていただきました。
参考URL

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    tcp_nopush     on;
    keepalive_timeout  65;
    gzip  on;
    include /etc/nginx/conf.d/*.conf;
}

この中の、
log_formatディレクティブが、ログの出力フォーマットを定義しています。
ので、この定義に、ちょちょいと。

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" "$request_body"';

最後に"$request_body"を追記するのみ。
(ログの最初に出力したい場合は、ディレクティブの先頭に追記する)

nginx再起動

設定を変更した後は、nginxを再起動。

service nginx stop
service nginx start

すると、上記で書いた場所のaccess.logに、POSTされたデータのMessageBodyが出力されるようになります。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
96
Help us understand the problem. What are the problem?