Help us understand the problem. What is going on with this article?

nginx で使える環境変数一覧[抜粋]

More than 1 year has passed since last update.

こんにちは、 @FoxBoxsnet です。
今日は最近開発が大詰めになってきたnginxのリバースプロキシのlog設定でnginxが吐ける変数についていちいち調べるのが大変になったので作成しました。

間違い、修正などあれば教えて頂けると助かります。

項目 記載なしは公式Wikiに記載がありませんが、ソースコードで確認した環境変数になります。
私が使用しているmoduleに絞って記載していますのですべてではありません。

$ nginx -V
nginx version: nginx/1.15.8
built by gcc 7.3.0 (Ubuntu 7.3.0-27ubuntu1~18.04)
built with OpenSSL 1.1.0g  2 Nov 2017


$ nginx -V 2>&1 | sed -e 's/\s/\n/g' | grep -e '--with-' | grep -v -e '--with-cc-opt' -e '--with-ld-opt'
--with-compat
--with-file-aio
--with-threads
--with-http_addition_module
--with-http_auth_request_module
--with-http_dav_module
--with-http_flv_module
--with-http_gunzip_module
--with-http_gzip_static_module
--with-http_mp4_module
--with-http_random_index_module
--with-http_realip_module
--with-http_secure_link_module
--with-http_slice_module
--with-http_ssl_module
--with-http_stub_status_module
--with-http_sub_module
--with-http_v2_module
--with-mail
--with-mail_ssl_module
--with-stream
--with-stream_realip_module
--with-stream_ssl_module
--with-stream_ssl_preread_module

Software Version
nginx 1.15.8

variables

各バージョンで追加された変数 (variables) チャレンジログより

version date log name module Description
1.13.10 2018-03-20 ssl_preread_alpn_protocols ngx_stream_ssl_preread_module ALPNを介してクライアントによってアドバタイズされたプロトコルのリスト
1.13.5 2017-09-05 ssl_client_escaped_cert ngx_http_ssl_module 確立されたSSL接続のクライアント証明書をPEM形式(urlencoded)
1.11.7 2016-12-13 ssl_ciphers ngx_http_ssl_module クライアントがサポートしている暗号のリスト
1.11.7 2016-12-13 ssl_curves ngx_http_ssl_module クライアントによってサポートされている曲線のリスト
1.11.7 2016-12-13 ssl_client_v_start ngx_http_ssl_module クライアント証明書の開始日
1.11.7 2016-12-13 ssl_client_v_end ngx_http_ssl_module クライアント証明書の終了日
1.11.7 2016-12-13 ssl_client_v_remain ngx_http_ssl_module クライアント証明書が期限切れになるまでの日数
1.11.4 2016-09-13 bytes_received ngx_stream_core_module クライアントから受信したバイト数
1.11.4 2016-09-13 session_time ngx_stream_upstream_module 秒単位のセッション期間
1.11.4 2016-09-13 protocol ngx_stream_core_module クライアントとの通信に使用されるプロトコル:TCPまたはUDP
1.11.4 2016-09-13 status ngx_stream_core_module セッションステータス
1.11.4 2016-09-13 upstream_addr ngx_stream_upstream_module IPアドレスとポート
1.11.4 2016-09-13 upstream_bytes_sent ngx_stream_upstream_module upstream サーバーに送信されたバイト数
1.11.4 2016-09-13 upstream_bytes_received ngx_stream_upstream_module upstream サーバーから受信したバイト数
1.11.4 2016-09-13 upstream_connect_time ngx_stream_upstream_module upstream サーバーに接続する時間
1.11.4 2016-09-13 upstream_first_byte_time ngx_stream_upstream_module データの最初のバイトを受信する時間
1.11.4 2016-09-13 upstream_session_time ngx_stream_upstream_module 秒単位のセッション期間
1.11.0 2016-03-24 request_id ngx_http_core_module ランダムな16バイトから生成された16進数の固有の要求ID
1.11.0 2016-03-24 proxy_protocol_port ngx_http_core_module PROXYプロトコルヘッダからのクライアントポート、そうでなければ空文字列
1.11.0 2016-03-24 realip_remote_port ngx_http_realip_module オリジナルのクライアントポート
1.9.7 2015-11-17 realip_remote_addr ngx_http_realip_module オリジナルのクライアントアドレス
1.9.1 2015-05-26 upstream_connect_time ngx_http_upstream_module upstream との接続を確立するのにかかる時間
1.7.10 2015-02-10 upstream_header_time ngx_http_upstream_module upstream からの応答ヘッダーの受信にかかる時間
1.7.1 2014-05-27 ssl_client_fingerprint ngx_http_ssl_module 確立されたSSL接続のクライアント証明書のSHA1フィンガープリントを返します
1.7.1 2014-05-27 upstream_cookie_name ngx_http_upstream_module “Set-Cookie” レスポンスヘッダフィールドで上流のサーバから送信された指定された名前のクッキー
1.7.0 2014-04-24 ssl_server_name ngx_http_ssl_module SNIを介して要求されたサーバー名を返します
1.5.12 2014-03-18 proxy_protocol_addr ngx_http_core_module PROXYプロトコルヘッダからのクライアントアドレス、そうでなければ空文字列
1.5.11 2014-03-04 ssl_session_reused ngx_http_ssl_module SSLセッションが再利用された場合は “r” を、そうでなければ “.” を返します
1.3.15 2013-05-05 connections_waiting ngx_http_stub_status_module 要求を待機しているアイドル状態のクライアント接続の現在の数
1.3.14 2013-05-05 connections_writing ngx_http_stub_status_module nginxが応答をクライアントに書き戻す現在の接続数
1.3.14 2013-05-05 connections_reading ngx_http_stub_status_module nginxがリクエストヘッダを読み込んでいる現在の接続数
1.3.14 2013-05-05 connections_active ngx_http_stub_status_module 待機接続を含む、アクティブなクライアント接続の現在の数
1.3.2 2012-06-26 status ngx_http_core_module レスポンスステイタス
1.1.18 2012-05-28 connection_requests ngx_http_core_module 現在の接続数
1.1.18 2012-05-28 tcpinfo_rtt ngx_http_core_module クライアントのTCP接続に関する情報
1.1.18 2012-05-28 tcpinfo_rttvar ngx_http_core_module クライアントのTCP接続に関する情報
1.1.18 2012-05-28 tcpinfo_snd_cwnd ngx_http_core_module クライアントのTCP接続に関する情報
1.1.18 2012-05-28 tcpinfo_rcv_space ngx_http_core_module クライアントのTCP接続に関する情報
1.1.11 2011-12-12 https ngx_http_core_module 接続がSSL接続で動作している場合は "on"
1.0.5 2011-07-19 uid_reset ngx_http_userid_module 変数が「0」ではない空でない文字列に設定されている場合、クライアント識別子はリセットされます
1.0.3 2011-05-25 geoip_org ngx_http_geoip_module 組織名
0.8.48 2010-08-03 geoip_region_name ngx_http_geoip_module 国の地域名(地域、地域、州、県、連邦の土地など)
0.8.48 2010-08-03 geoip_area_code ngx_http_geoip_module 電話市外局番(米国のみ)
0.8.48 2010-08-03 geoip_dma_code ngx_http_geoip_module Google AdWords API の地域ターゲティングに基づく、米国のDMA地域コード
0.8.31 2009-10-23 geoip_longitude ngx_http_geoip_module 緯度
0.8.31 2009-10-23 geoip_latitude ngx_http_geoip_module 緯度
0.8.31 2009-10-23 geoip_city_continent_code ngx_http_geoip_module 2文字の国コード
0.8.7 2009-07-27 ssl_client_verify ngx_http_ssl_module クライアント証明書の検証結果を返します: "SUCCESS"、 "FAILED:reason"、および証明書が存在しなかった場合は "NONE"
0.8.3 2009-06-19 upstream_cache_status ngx_http_upstream_module 応答キャッシュへのアクセス状況ステータスは下記のいずれか "MISS", "BYPASS", "EXPIRED", "STALE", "UPDATING", "REVALIDATED", "HIT"
0.7.27 2008-12-15 request_body ngx_http_core_module リクエストボディ
0.7.22 2008-11-20 cookie_name ngx_http_core_module cookie名
0.7.18 2008-10-13 realpath_root ngx_http_core_module 現在のリクエストに対するルートディレクティブまたはエイリアスディレクティブの値に対応する絶対パス名
0.7.17 2008-09-15 pid ngx_http_core_module ワーカープロセスのPID
0.7.8 2008-08-04 arg_name ngx_http_core_module 任意のレスポンスヘッダフィールド。 変数名の最後の部分は、ダッシュを下線で置き換えて小文字に変換されたフィールド名です。
0.7.2 2008-06-16 ssl_client_cert ngx_http_ssl_module 確立されたSSL接続のクライアント証明書をPEM形式で返します
0.7.0 2008-05-19 hostname ngx_http_core_module ホスト名
0.6.6 2007-07-30 is_args ngx_http_core_module リクエスト行に引数がある場合は“?”、それ以外の場合は空の文字列
0.6.6 2007-07-30 args ngx_http_core_module リクエスト行の引数
0.6.5 2007-07-23 nginx_version ngx_http_core_module nginx のバージョン
0.5.20 2007-05-07 upstream_http_name ngx_http_core_module 任意のレスポンスヘッダフィールド。 変数名の最後の部分は、ダッシュを下線で置き換えて小文字に変換されたフィールド名です。
0.5.20 2007-05-07 $sent_http_name ngx_http_core_module 任意のレスポンスヘッダフィールド。 変数名の最後の部分は、ダッシュを下線で置き換えて小文字に変換されたフィールド名です。
0.5.20 2007-05-07 http_name ngx_http_core_module 任意のリクエストヘッダフィールド。 変数名の最後の部分は、ダッシュを下線で置き換えて小文字に変換されたフィールド名です。
0.5.19 2007-04-24 upstream_addr ngx_http_upstream_module IPアドレスとポート (192.0.2.1:80)
0.5.18 2007-04-19 upstream_http_name ngx_http_upstream_module サーバー応答ヘッダーフィールドを保持します。 たとえば、「Server」応答ヘッダーフィールドは、$upstream_http_server 変数を通して利用できます。
0.5.9 2007-01-25 memcached_key ngx_http_memcached_module memcachedサーバーから応答を取得するためのキーの定義
0.5.6 2007-01-09 binary_remote_addr ngx_http_core_module バイナリ形式のクライアントアドレス
0.4.7 2006-10-10 request_body_file ngx_http_core_module リクエスト本体を含む一時ファイルの名前
0.4.4 2006-10-02 scheme ngx_http_core_module リクエストスキーム
0.3.57 2006-08-09 ssl_client_serial ngx_http_ssl_module SSL接続のクライアント証明書のシリアル番号
0.3.40 2006-04-19 limit_rate ngx_http_core_module 応答レート制限が有効な場合にはこの値が設定されます
0.3.36 2006-04-05 request_completion ngx_http_core_module 要求が完了した場合は「OK」、それ以外の場合は空の文字列
0.3.27 2006-02-08 ssl_cipher ngx_http_ssl_module SSL接続に使用される暗号の文字列を返します
0.3.27 2006-02-08 ssl_protocol ngx_http_ssl_module SSL接続のプロトコルを返します
0.3.12 2005-11-26 time_local ngx_http_log_module 共通ログ形式の現地時間
0.3.10 2005-11-15 invalid_referer ngx_http_referer_module -
0.3.10 2005-11-15 body_bytes_sent ngx_http_log_module 応答ヘッダを含まないクライアントへ送信されるバイト数; この値はmod_log_config Apacheモジュールの"%B"パラメータと互換性があります。
0.3.10 2005-11-15 sent_http_name ngx_http_core_module
0.3.8 2005-11-09 connection ngx_http_log_module 接続シリアル番号
0.3.8 2005-11-09 uid_set ngx_http_userid_module クッキーと送信されたクライアントの識別子
0.3.8 2005-11-09 uid_got ngx_http_userid_module クッキーと受け取ったクライアントの識別子
0.3.8 2005-11-09 gzip_ratio ngx_http_gzip_filter_module 圧縮比
0.3.8 2005-11-09 upstream_response_time ngx_http_upream upstreamサーバから応答ヘッダを受け取るまでの時間を保持します。
0.3.8 2005-11-09 upstream_status ngx_http_upream upstreamサーバから取得したステータスコードを保持します。
0.3.8 2005-11-09 request_length ngx_http_log_module リクエストの長さ(リクエスト行、ヘッダとリクエストボディを含む)
0.3.8 2005-11-09 request_time ngx_http_log_module ミリ秒の精度のリクエストの処理の秒数
0.3.8 2005-11-09 uri ngx_http_variables.c リクエスト中の現在のURI、正規化されたもの
0.3.8 2005-11-09 status ngx_http_log_module
0.3.8 2005-11-09 bytes_sent ngx_http_log_module 応答ヘッダを含まないクライアントへ送信されるバイト数; この値はmod_log_config Apacheモジュールの"%B"パラメータと互換性があります。
0.3.3 2005-10-19 msec ngx_http_log_module ミリ秒の精度の現在の秒
0.3.3 2005-10-19 upstream_response_time ngx_http_upstream upstream のレスポンスタイム
0.1.44 2005-09-05 remote_user ngx_http_log_module ログインしたユーザー名
0.1.29 2005-05-12 proxy_add_x_forwarded_for

logs

commons

  • ngx_http_core_module

    • args
    • body_bytes_sent
    • bytes_received
    • bytes_sent
    • connection
    • connection_requests
    • host
    • hostname
    • https
    • limit_rate
    • msec
    • nginx_version
    • pid
    • proxy_protocol_addr
    • proxy_protocol_port
    • remote_addr
    • remote_port
    • remote_user
    • request
    • request_body
    • request_body_file
    • request_completion
    • request_filename
    • request_id
    • request_length
    • request_method
    • request_time
    • request_uri
    • server_addr
    • server_name
    • server_port
    • server_protocol
    • status
    • tcpinfo_rtt
    • tcpinfo_rttvar
    • tcpinfo_snd_cwnd
    • tcpinfo_rcv_space
    • time_iso8601
    • time_local
  • ngx_http_log_module

    • connection_requests
    • msec
    • request_length
    • request_time
    • status
    • time_iso8601
    • time_local
  • ngx_http_stub_status_module

    • connections_active
    • connections_reading
    • connections_writing
    • connections_waiting
  • ngx_http_ssi_module

    • date_gmt
  • ngx_stream_core_module

    • hostname
    • msec
    • pid
    • protocol
    • proxy_protocol_addr
    • proxy_protocol_port
    • remote_addr
    • remote_port
    • server_addr
    • server_port
    • status
    • time_iso8601
    • time_local
  • ngx_http_referer_module

    • invalid_referer
  • ngx_http_proxy_module

    • proxy_add_x_forwarded_for
    • proxy_host
    • proxy_port
  • ngx_stream_realip_module

    • realip_remote_addr
    • realip_remote_port
  • ngx_http_realip_module

    • realip_remote_addr
    • realip_remote_port
  • ngx_http_upstream_module

    • upstream_addr
    • upstream_bytes_received
    • upstream_bytes_sent
    • upstream_cache_status
    • upstream_connect_time
    • upstream_first_byte_time
    • upstream_queue_time
    • upstream_response_length
    • upstream_response_time
    • upstream_status
  • ngx_stream_upstream_module

    • upstream_addr
    • upstream_bytes_received
    • upstream_bytes_sent
    • upstream_connect_time
    • upstream_header_time
    • upstream_session_time
  • response

    • content_length
    ##
    # logging Settings
    ##
    # '#'  Delete as it is unnecessary log
    # '##' configration check faild
    log_format main escape=json '{'
      '"timestamp": "$time_iso8601",'
      '"time_local": "$time_local",'
      '"date_gmt": "$date_gmt",'
      '"date_local": "$date_local",'
      '"msec": "$msec",'
      '"nginx": {'
        '"connection": "$connection",'
        '"connection_requests": "$connection_requests",'
        '"connections": {'
          '"active": "$connections_active",'
          '"reading": "$connections_reading",'
          '"writing": "$connections_writing",'
          '"waiting": "$connections_waiting"'
        '},'
        '"host": "$host",'
        '"limit_rate": "$limit_rate",'
        '"pid": "$pid",'
        '"server": {'
          '"addr": "$server_addr",'
          '"name": "$server_name",'
          '"port": "$server_port",'
          '"protocol": "$server_protocol"'
        '},'
        '"ssl": {'
          '"cipher": "$ssl_cipher",'
          '"ciphers": "$ssl_ciphers",'
          '"curves": "$ssl_curves",'
          '"early_data": "$ssl_early_data",'
          '"protocol": "$ssl_protocol",'
          '"server_name": "$ssl_server_name",'
          '"session_id": "$ssl_session_id",'
          '"session_reused": "$ssl_session_reused"'
          '"client": {'
            '"escaped_cert": "$ssl_client_escaped_cert",'
            '"cert": "$ssl_client_cert",'
            '"fingerprint": "$ssl_client_fingerprint",'
            '"i_dn": "$ssl_client_i_dn",'
            '"s_dn": "$ssl_client_s_dn",'
            '"serial": "$ssl_client_serial",'
            '"v_end": "$ssl_client_v_end",'
            '"v_remain": "$ssl_client_v_remain",'
            '"v_start": "$ssl_client_v_start",'
            '"verify": "$ssl_client_verify"'
          '},'
##          '"preread": {'
##            '"alpn_protocols": "$ssl_preread_alpn_protocols",'
##            '"protocol": "$ssl_preread_protocol",'
##            '"server_name": "$ssl_preread_server_name"'
##          '}'
        '}'
        '"upstream": {'
          '"upstream_addr": "$upstream_addr",'
          '"bytes_received": "$upstream_bytes_received",'
##        '"bytes_sent": "$upstream_bytes_sent",'
          '"cache_status": "$upstream_cache_status",'
          '"connect_time": "$upstream_connect_time",'
##        '"first_byte_time": "$upstream_first_byte_time",'
          '"header_time": "$upstream_header_time",'
##        '"queue_time": "$upstream_queue_time",'
          '"response_length": "$upstream_response_length",'
##        '"response_time": "$upstream_response_time",'
##        '"session_time": "$upstream_session_time",'
          '"status": "$upstream_status"'
        '},'
        '"version": "$nginx_version"'
      '},'
      '"request": {'
        '"args": "$args",'
        '"body": "$request_body",'
        '"body_file": "$request_body_file",'
##      '"bytes_received": "$bytes_received",'
        '"completion": "$request_completion",'
        '"content_length": "$content_length",'
        '"content_type": "$content_type",'
        '"filename": "$request_filename",'
        '"gzip": {'
          '"ratio": "$gzip_ratio"'
        '},'
        '"http2": "$http2",'
        '"https": "$https",'
        '"id": "$request_id",'
        '"invalid_referer": "$invalid_referer",'
        '"length": "$request_length",'
        '"method": "$request_method",'
        '"proxy": {'
          '"x_forwarded_for": "$proxy_add_x_forwarded_for",'
          '"host": "$proxy_host",'
          '"port": "$proxy_port",'
          '"protocol_addr": "$proxy_protocol_addr",'
          '"protocol_port": "$proxy_protocol_port"'
        '},'
##      '"protocol": "$protocol",'
        '"realip": {'
          '"remote_addr": "$realip_remote_addr",'
          '"remote_port": "$realip_remote_port"'
        '},'
        '"referer": "$http_referer",'
        '"remote": {'
          '"addr": "$remote_addr",'
          '"port": "$remote_port",'
          '"user": "$remote_user"'
        '},'
        '"request": "$request",'
        '"scheme": "$scheme",'
        '"tcpinfo": {'
          '"rtt": "$tcpinfo_rtt",'
          '"rttvar": "$tcpinfo_rttvar",'
          '"snd_cwnd": "$tcpinfo_snd_cwnd",'
          '"rcv_space": "$tcpinfo_rcv_space"'
        '},'
        '"time": "$request_time",'
        '"uri": "$request_uri",'
        '"user_agent": "$http_user_agent",'
        '"uid": {'
          '"got": "$uid_got",'
          '"reset": "$uid_reset",'
          '"set": "$uid_set"'
        '},'
        '"uri": "$uri"'
      '},'
      '"response": {'
        '"body_bytes_sent": "$body_bytes_sent",'
        '"bytes_sent": "$bytes_sent",'
        '"status": "$status"'
      '}'
    '}';

SSL

  • ngx_http_ssl_module

    • ssl_cipher
    • ssl_ciphers
    • ssl_client_cert
    • ssl_client_escaped_cert
    • ssl_client_fingerprint
    • ssl_client_i_dn
    • ssl_client_i_dn_legacy
    • ssl_client_raw_cert
    • ssl_client_s_dn
    • ssl_client_s_dn_legacy
    • ssl_client_raw_cert
    • ssl_client_s_dn
    • ssl_client_s_dn_legacy
    • ssl_client_serial
    • ssl_client_v_end
    • ssl_client_v_remain
    • ssl_client_v_start
    • ssl_client_verify
    • ssl_curves
    • ssl_early_data
    • ssl_preread_alpn_protocols
    • ssl_preread_protocol
    • ssl_preread_server_name
    • ssl_protocol
    • ssl_server_name
    • ssl_session_id
    • ssl_session_reused
  • ngx_stream_ssl_module

    • ssl_cipher
    • ssl_ciphers
    • ssl_client_cert
    • ssl_client_fingerprint
    • ssl_client_i_dn
    • ssl_client_raw_cert
    • ssl_client_s_dn
    • ssl_client_raw_cert
    • ssl_client_s_dn
    • ssl_client_s_dn_legacy
    • ssl_client_serial
    • ssl_client_v_end
    • ssl_client_v_remain
    • ssl_client_v_start
    • ssl_client_verify
    • ssl_curves
    • ssl_protocol
    • ssl_server_name
    • ssl_session_id
    • ssl_session_reused

SSL/TLS 系の module

    log_format main escape=json '{'
      '"ssl": {'
        '"cipher": "$ssl_cipher",'
        '"ciphers": "$ssl_ciphers",'
        '"curves": "$ssl_curves",'
# (1.15.3)        '"early_data": "$ssl_early_data",'
        '"protocol": "$ssl_protocol",'
        '"server_name": "$ssl_server_name",'
        '"session_id": "$ssl_session_id",'
        '"session_reused": "$ssl_session_reused",'
        '"client": {'
            '"escaped_cert": "$ssl_client_escaped_cert",'
            '"cert": "$ssl_client_cert",'
            '"fingerprint": "$ssl_client_fingerprint",'
            '"i_dn": "$ssl_client_i_dn",'
            '"s_dn": "$ssl_client_s_dn",'
            '"serial": "$ssl_client_serial",'
            '"v_end": "$ssl_client_v_end",'
            '"v_remain": "$ssl_client_v_remain",'
            '"v_start": "$ssl_client_v_start",'
            '"verify": "$ssl_client_verify"'
        '},'
        '"preread": {'
          '"alpn_protocols": "$ssl_preread_alpn_protocols",'
          '"protocol": "$ssl_preread_protocol",'
          '"server_name": "$ssl_preread_server_name"'
        '}'
      '}'
    '}';

ngx_http_v2_module

HTTP/2 用 module

    log_format main escape=json '{'
      '"http2": "$http2",'
    '}';

Module ngx_http_gzip_module

    log_format main escape=json '{'
      '"gzip": {'
        '"ratio": "$gzip_ratio"'
      '}'
    '}';

参考

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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした