T-CREATOR

Nginx 変数 100 選:$request_id/$upstream_status/$ssl_protocol ほか即戦力まとめ

Nginx 変数 100 選:$request_id/$upstream_status/$ssl_protocol ほか即戦力まとめ

Nginx は世界中で広く使われている高性能な Web サーバーおよびリバースプロキシです。その設定ファイルには数多くの変数が用意されており、ログ出力やアクセス制御、リダイレクトなど、さまざまな用途で活用できます。本記事では、実務で即戦力となる Nginx 変数を 100 個厳選し、カテゴリ別に分類して紹介します。

初心者の方でも理解しやすいよう、各変数の役割や使用例を丁寧に解説していきますので、ぜひ最後までご覧ください。

Nginx 変数早見表

本記事で紹介する変数を、カテゴリ別に整理した早見表です。検索や参照にご活用ください。

リクエスト関連変数

#変数名説明
1$request完全なリクエストライン
2$request_methodHTTP メソッド (GET, POST など)
3$request_uriクエリ文字列を含む元のリクエスト URI
4$uri正規化された現在の URI
5$document_uri$uri のエイリアス
6$argsクエリ文字列全体
7$query_string$args のエイリアス
8$arg_name特定のクエリパラメータの値
9$is_argsクエリ文字列の有無 (「?」または空文字)
10$request_id一意なリクエスト識別子
11$request_lengthリクエスト全体のバイト数
12$request_timeリクエスト処理時間(秒)
13$request_bodyリクエストボディの内容
14$request_body_fileリクエストボディが保存されたファイルパス
15$content_lengthContent-Length ヘッダーの値
16$content_typeContent-Type ヘッダーの値

HTTP ヘッダー関連変数

#変数名説明
17$http_name任意の HTTP リクエストヘッダー
18$http_hostHost ヘッダーの値
19$http_user_agentUser-Agent ヘッダーの値
20$http_refererReferer ヘッダーの値
21$http_cookieCookie ヘッダーの値
22$http_x_forwarded_forX-Forwarded-For ヘッダーの値
23$http_x_real_ipX-Real-IP ヘッダーの値
24$http_acceptAccept ヘッダーの値
25$http_accept_languageAccept-Language ヘッダーの値
26$http_accept_encodingAccept-Encoding ヘッダーの値
27$http_connectionConnection ヘッダーの値
28$http_cache_controlCache-Control ヘッダーの値
29$cookie_name特定の Cookie の値

レスポンス関連変数

#変数名説明
30$statusHTTP レスポンスステータスコード
31$body_bytes_sentクライアントに送信したボディのバイト数
32$bytes_sentクライアントに送信した総バイト数
33$sent_http_name任意の HTTP レスポンスヘッダー
34$sent_http_content_typeContent-Type レスポンスヘッダー
35$sent_http_locationLocation レスポンスヘッダー
36$sent_http_cache_controlCache-Control レスポンスヘッダー

アップストリーム関連変数

#変数名説明
37$upstream_statusアップストリームのステータスコード
38$upstream_addrアップストリームサーバーのアドレス
39$upstream_response_timeアップストリームからのレスポンス時間
40$upstream_connect_timeアップストリームへの接続時間
41$upstream_header_timeアップストリームからヘッダー受信までの時間
42$upstream_bytes_receivedアップストリームから受信したバイト数
43$upstream_bytes_sentアップストリームに送信したバイト数
44$upstream_cache_statusキャッシュのステータス
45$upstream_http_nameアップストリームからの HTTP ヘッダー

SSL/TLS 関連変数

#変数名説明
46$ssl_protocolSSL/TLS プロトコルのバージョン
47$ssl_cipher使用中の暗号化方式
48$ssl_session_idSSL セッション ID
49$ssl_session_reusedSSL セッションの再利用 (r または .)
50$ssl_server_nameSNI で指定されたサーバー名
51$ssl_client_certクライアント証明書
52$ssl_client_s_dnクライアント証明書の Subject DN
53$ssl_client_i_dnクライアント証明書の Issuer DN
54$ssl_client_serialクライアント証明書のシリアル番号
55$ssl_client_verifyクライアント証明書の検証結果
56$ssl_curvesサポートされている楕円曲線

接続・ネットワーク関連変数

#変数名説明
57$remote_addrクライアントの IP アドレス
58$remote_portクライアントのポート番号
59$remote_userBasic 認証のユーザー名
60$server_addrリクエストを受け取ったサーバーの IP アドレス
61$server_portリクエストを受け取ったサーバーのポート番号
62$server_protocolリクエストプロトコル (HTTP/1.1 など)
63$schemeリクエストのスキーム (http または https)
64$httpsHTTPS 接続の場合は「on」、それ以外は空文字
65$binary_remote_addrバイナリ形式のクライアント IP アドレス
66$connection接続のシリアル番号
67$connection_requests現在の接続で処理されたリクエスト数
68$proxy_protocol_addrPROXY プロトコルのクライアント IP
69$proxy_protocol_portPROXY プロトコルのクライアントポート
70$realip_remote_addrreal_ip モジュール適用前の IP アドレス
71$realip_remote_portreal_ip モジュール適用前のポート

サーバー・ホスト関連変数

#変数名説明
72$hostリクエストのホスト名
73$hostnameサーバーのホスト名
74$server_nameリクエストを処理した server ブロックのサーバー名
75$nginx_versionNginx のバージョン
76$pidワーカープロセスの PID

時刻・日付関連変数

#変数名説明
77$time_localローカルタイムゾーンでの時刻
78$time_iso8601ISO 8601 形式の時刻
79$msecUnix エポックからの秒数(マイクロ秒精度)

ファイル・パス関連変数

#変数名説明
80$document_root現在のリクエストの root ディレクティブの値
81$realpath_rootroot の実際のパス(シンボリックリンク解決後)
82$request_filenameリクエストされたファイルのフルパス

Limit 関連変数

#変数名説明
83$limit_rateレスポンスの送信レート制限
84$limit_conn_status接続数制限のステータス
85$limit_req_statusリクエスト数制限のステータス

FastCGI 関連変数

#変数名説明
86$fastcgi_script_nameFastCGI スクリプト名
87$fastcgi_path_infoFastCGI PATH_INFO

その他の変数

#変数名説明
88$pipeパイプライン接続の場合「p」、それ以外は「.」
89$gzip_ratiogzip 圧縮率
90$tcpinfo_rttTCP の RTT(ラウンドトリップタイム)
91$tcpinfo_rttvarTCP の RTT 分散
92$tcpinfo_snd_cwndTCP の送信輻輳ウィンドウ
93$tcpinfo_rcv_spaceTCP の受信ウィンドウサイズ
94$ancient_browser古いブラウザの場合に設定される値
95$invalid_referer無効な Referer の場合に設定される値
96$memcached_keymemcached のキー
97$redis_keyredis のキー
98$slice_rangeスライスモジュールのレンジ
99$http2HTTP/2 接続の場合「h2」、それ以外は空文字
100$http3HTTP/3 接続の場合「h3」、それ以外は空文字

背景

Nginx は 2004 年に Igor Sysoev 氏によって開発されて以来、Web サーバーおよびリバースプロキシとして世界中で利用されてきました。その人気の理由は、高いパフォーマンス、柔軟な設定、そして豊富な機能にあります。

Nginx の設定ファイルでは、さまざまなコンテキスト(http、server、location など)で変数を使用できます。これらの変数は、実行時にリクエストやサーバーの状態に応じて動的に値が設定され、ログ記録、条件分岐、リダイレクト、ヘッダー操作など、多岐にわたる用途で活用されています。

以下の図は、Nginx がリクエストを処理する際に変数がどのように活用されるかを示したものです。

mermaidflowchart TB
  client["クライアント"] -->|HTTP リクエスト| nginx["Nginx サーバー"]
  nginx -->|変数の評価| vars["変数の取得<br/>$remote_addr<br/>$request_uri<br/>$http_user_agent"]
  vars -->|条件判定| logic["設定ロジック<br/>アクセス制御<br/>リダイレクト<br/>ヘッダー操作"]
  logic -->|プロキシ| upstream["アップストリーム<br/>アプリケーションサーバー"]
  upstream -->|レスポンス| nginx
  nginx -->|ログ出力| log["ログファイル<br/>変数を記録"]
  nginx -->|HTTP レスポンス| client

この図から、Nginx がリクエストを受け取った後、様々な変数を取得・評価し、設定に基づいた処理を行い、最終的にログとして記録していることがわかります。

変数の活用により、運用担当者は詳細なアクセスログを取得し、トラブルシューティングやパフォーマンス分析を効率的に行えるようになります。

課題

Nginx の変数は非常に多く、公式ドキュメントを読んでもすべてを把握するのは容易ではありません。特に以下のような課題があります。

課題 1:変数の数が多く、どれを使えばよいかわからない

Nginx には 100 を超える変数が存在し、それぞれが異なる目的や用途を持っています。初心者の方にとっては、どの変数がどのような場面で役立つのか判断するのが難しいでしょう。

課題 2:カテゴリ分けされていないため検索しにくい

公式ドキュメントでは、変数がモジュールごとに分散して記載されており、体系的に整理されていません。そのため、必要な変数を見つけるために複数のページを参照する必要があります。

課題 3:実際の使用例が少ない

変数の説明はあっても、具体的にどのように設定ファイルに記述すれば良いのか、実践的な例が不足していることがあります。

以下の図は、Nginx 変数の学習における課題を示しています。

mermaidflowchart LR
  engineer["エンジニア"] -->|学習開始| doc["公式ドキュメント"]
  doc -->|変数が多い| confusion1["課題1<br/>どれを使う?"]
  doc -->|分散している| confusion2["課題2<br/>検索しにくい"]
  doc -->|例が少ない| confusion3["課題3<br/>実装イメージが<br/>わかない"]
  confusion1 --> frustration["学習の<br/>挫折リスク"]
  confusion2 --> frustration
  confusion3 --> frustration

これらの課題を解決するためには、変数を体系的に整理し、カテゴリ別に分類し、実践的な使用例とともに紹介することが重要です。

解決策

本記事では、上記の課題を解決するために、以下のアプローチを採用しました。

解決策 1:実務で役立つ 100 個の変数を厳選

数多くある Nginx 変数の中から、実際の開発・運用現場で頻繁に使用される重要な変数を 100 個厳選しました。これにより、学習の優先順位が明確になります。

解決策 2:カテゴリ別に分類して整理

変数を以下のカテゴリに分類し、目的に応じて必要な変数を素早く見つけられるようにしました。

  • リクエスト関連変数
  • HTTP ヘッダー関連変数
  • レスポンス関連変数
  • アップストリーム関連変数
  • SSL/TLS 関連変数
  • 接続・ネットワーク関連変数
  • サーバー・ホスト関連変数
  • 時刻・日付関連変数
  • ファイル・パス関連変数
  • Limit 関連変数
  • FastCGI 関連変数
  • その他の変数

解決策 3:実践的な使用例を豊富に提供

各カテゴリにおいて、実際の設定ファイルでの使用例を示し、どのように記述すれば良いのかを具体的に解説します。

以下の図は、本記事によって課題がどのように解決されるかを示しています。

mermaidflowchart LR
  article["本記事"] -->|厳選100個| sol1["解決策1<br/>優先順位が明確"]
  article -->|カテゴリ分類| sol2["解決策2<br/>検索しやすい"]
  article -->|豊富な例| sol3["解決策3<br/>実装イメージが<br/>つかめる"]
  sol1 --> success["効率的な学習<br/>実務での活用"]
  sol2 --> success
  sol3 --> success

これにより、エンジニアの皆さんが Nginx 変数を効率的に学習し、実務で即座に活用できるようになります。

具体例

ここからは、カテゴリ別に Nginx 変数の具体的な使用例を紹介します。実際の設定ファイルに記述する際の参考にしてください。

リクエスト関連変数の活用

リクエスト関連変数は、クライアントからのリクエスト情報を取得する際に使用します。

$request_id でリクエストを追跡する

$request_id は、各リクエストに一意の識別子を付与する変数です。マイクロサービス環境でのトレーシングに便利です。

nginx# アクセスログに request_id を記録
log_format trace '$remote_addr - $request_id - [$time_local] '
                 '"$request" $status $body_bytes_sent';

access_log /var/log/nginx/access.log trace;

この設定により、各リクエストに固有の ID が付与され、ログから特定のリクエストを追跡できます。

$request_method でメソッドを判定する

HTTP メソッドに応じて処理を分岐させることができます。

nginxlocation /api {
    # POST リクエストのみ許可
    if ($request_method !~ ^(POST)$) {
        return 405;
    }
    proxy_pass http://backend;
}

この例では、POST メソッド以外のリクエストには「405 Method Not Allowed」を返します。

$request_uri$uri の違い

$request_uri は元のリクエスト URI(クエリ文字列を含む)を保持し、$uri は正規化された現在の URI を表します。

nginxlocation /redirect {
    # 元の URI をログに記録
    access_log /var/log/nginx/redirect.log;
    add_header X-Original-URI $request_uri;
    add_header X-Current-URI $uri;

    return 301 /new-path;
}

このように、リダイレクト処理で元の URI と現在の URI を区別して扱えます。

$args$arg_name でクエリパラメータを取得

クエリ文字列全体やパラメータ個別にアクセスできます。

nginxlocation /search {
    # クエリパラメータ「q」の値を取得
    set $search_query $arg_q;

    # パラメータがない場合はエラー
    if ($search_query = "") {
        return 400 "Search query is required";
    }

    proxy_pass http://search_backend;
}

この設定では、​/​search?q=nginx のように指定されたクエリパラメータを取得し、バックエンドに転送します。

HTTP ヘッダー関連変数の活用

HTTP ヘッダーの情報を取得し、アクセス制御やログ記録に活用できます。

$http_user_agent でユーザーエージェントを判定

ブラウザやボットを判別して処理を変更できます。

nginxlocation / {
    # ボットからのアクセスを制限
    if ($http_user_agent ~* (bot|crawler|spider)) {
        return 403;
    }

    proxy_pass http://backend;
}

この例では、User-Agent に「bot」「crawler」「spider」が含まれる場合、アクセスを拒否します。

$http_x_forwarded_for で実際の IP を取得

リバースプロキシ環境では、X-Forwarded-For ヘッダーからクライアントの実際の IP アドレスを取得します。

nginx# リアル IP をログに記録
log_format forwarded '$http_x_forwarded_for - $remote_addr - [$time_local] '
                     '"$request" $status';

access_log /var/log/nginx/forwarded.log forwarded;

ロードバランサーや CDN を経由する場合、$remote_addr だけでは直前のプロキシの IP しか取得できないため、この変数が重要です。

Cookie の値を取得して、セッション管理やパーソナライゼーションに利用できます。

nginxlocation /dashboard {
    # session_id Cookie が存在しない場合はログインページへ
    if ($cookie_session_id = "") {
        return 302 /login;
    }

    proxy_pass http://backend;
    proxy_set_header X-Session-ID $cookie_session_id;
}

この設定により、未認証ユーザーをログインページにリダイレクトします。

レスポンス関連変数の活用

レスポンスのステータスやバイト数を記録し、パフォーマンス分析に役立てます。

$status$body_bytes_sent でレスポンス情報を記録

nginx# 詳細なレスポンスログフォーマット
log_format detailed '$remote_addr - [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" rt=$request_time';

access_log /var/log/nginx/detailed.log detailed;

このログフォーマットにより、ステータスコード、送信バイト数、リクエスト時間を一元的に記録できます。

以下の図は、レスポンス変数を活用したロギングの流れを示しています。

mermaidsequenceDiagram
  participant Client as クライアント
  participant Nginx as Nginx
  participant Backend as バックエンド
  participant Log as ログファイル

  Client->>Nginx: HTTP リクエスト
  Nginx->>Backend: プロキシ転送
  Backend->>Nginx: レスポンス
  Nginx->>Log: $status, $body_bytes_sent,<br/>$request_time を記録
  Nginx->>Client: HTTP レスポンス

このように、レスポンスを返す際に重要な指標をログに記録することで、後から分析が可能になります。

アップストリーム関連変数の活用

リバースプロキシとして動作する際、バックエンドサーバーの状態を監視できます。

$upstream_status でバックエンドのステータスを記録

nginx# アップストリームのステータスをログに記録
log_format upstream '$remote_addr - [$time_local] "$request" '
                    '$status (upstream: $upstream_status) '
                    'time=$request_time upstream_time=$upstream_response_time';

access_log /var/log/nginx/upstream.log upstream;

この設定により、Nginx のステータスコードとバックエンドのステータスコードを両方記録できます。バックエンドが 500 エラーを返した場合でも、それを明確に把握できます。

$upstream_response_time でパフォーマンス測定

バックエンドのレスポンス時間を測定し、ボトルネックを特定します。

nginxlocation /api {
    proxy_pass http://backend;

    # レスポンス時間をヘッダーに追加(開発環境のみ)
    add_header X-Upstream-Response-Time $upstream_response_time;
    add_header X-Request-Time $request_time;
}

この設定により、クライアント側でレスポンスヘッダーを確認することで、パフォーマンスを測定できます。

$upstream_cache_status でキャッシュ状態を確認

プロキシキャッシュの動作状況を把握できます。

nginxproxy_cache my_cache;
proxy_cache_valid 200 10m;

location /cached {
    proxy_pass http://backend;

    # キャッシュステータスをヘッダーに追加
    add_header X-Cache-Status $upstream_cache_status;
}

$upstream_cache_status は以下の値を取ります:

  • HIT: キャッシュからレスポンスを返した
  • MISS: キャッシュがなく、アップストリームから取得
  • BYPASS: キャッシュをバイパス
  • EXPIRED: キャッシュが期限切れ
  • STALE: 古いキャッシュを返した
  • UPDATING: キャッシュを更新中
  • REVALIDATED: キャッシュを再検証

SSL/TLS 関連変数の活用

HTTPS 接続の詳細情報を取得し、セキュリティ監視に活用します。

$ssl_protocol$ssl_cipher で暗号化情報を記録

使用されている TLS プロトコルと暗号化方式をログに記録します。

nginx# SSL 詳細ログフォーマット
log_format ssl_detailed '$remote_addr - [$time_local] "$request" '
                        '$status ssl_protocol=$ssl_protocol '
                        'ssl_cipher=$ssl_cipher '
                        'ssl_session_reused=$ssl_session_reused';

access_log /var/log/nginx/ssl.log ssl_detailed;

このログから、古い TLS バージョン(TLS 1.0/1.1)を使用しているクライアントを特定し、セキュリティポリシーの見直しに役立てられます。

$ssl_client_verify でクライアント証明書認証

相互 TLS 認証を実装する際に使用します。

nginxserver {
    listen 443 ssl;
    server_name secure.example.com;

    ssl_certificate /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;
    ssl_client_certificate /etc/nginx/ssl/ca.crt;
    ssl_verify_client optional;

    location / {
        # クライアント証明書の検証結果をチェック
        if ($ssl_client_verify != SUCCESS) {
            return 403 "Client certificate verification failed";
        }

        # 証明書の Subject DN をバックエンドに渡す
        proxy_set_header X-Client-DN $ssl_client_s_dn;
        proxy_pass http://backend;
    }
}

この設定により、有効なクライアント証明書を持つユーザーのみがアクセスできるようになります。

接続・ネットワーク関連変数の活用

クライアントの接続情報を取得し、アクセス制御やログ記録に使用します。

$remote_addr$realip_remote_addr の使い分け

リバースプロキシ環境で実際のクライアント IP を取得します。

nginx# real_ip モジュールの設定
set_real_ip_from 10.0.0.0/8;
set_real_ip_from 172.16.0.0/12;
real_ip_header X-Forwarded-For;

# ログフォーマット
log_format realip 'original=$realip_remote_addr proxy=$remote_addr '
                  '[$time_local] "$request" $status';

access_log /var/log/nginx/realip.log realip;

この設定により、プロキシ経由でも元のクライアント IP を正しく記録できます。

$connection_requests で接続の再利用を確認

HTTP/1.1 のキープアライブによる接続再利用を監視します。

nginxlog_format connection '$remote_addr connection=$connection '
                      'requests=$connection_requests '
                      '[$time_local] "$request"';

access_log /var/log/nginx/connection.log connection;

$connection_requests の値が大きい場合、同一接続で複数のリクエストが処理されており、効率的な通信が行われていることがわかります。

時刻・日付関連変数の活用

タイムスタンプをさまざまな形式で記録できます。

$time_iso8601 で ISO 形式の時刻を記録

nginxlog_format iso8601 '$remote_addr - $time_iso8601 "$request" $status';
access_log /var/log/nginx/iso8601.log iso8601;

ISO 8601 形式(2025-11-21T10:30:45+09:00)は国際標準であり、ログ解析ツールとの連携に適しています。

$msec で高精度なタイムスタンプを取得

マイクロ秒精度のタイムスタンプを記録し、パフォーマンス測定の精度を高めます。

nginxlog_format precise '$msec $remote_addr "$request" $status rt=$request_time';
access_log /var/log/nginx/precise.log precise;

この形式は、リクエストの処理順序を厳密に追跡する必要がある場合に有効です。

ファイル・パス関連変数の活用

ファイルシステム上のパスを扱う際に使用します。

$document_root$request_filename でファイルパスを確認

nginxlocation /files {
    root /var/www/html;

    # ファイルが存在しない場合はカスタムエラーページ
    if (!-f $request_filename) {
        return 404 "File not found: $uri";
    }

    # デバッグ用ヘッダー(開発環境のみ)
    add_header X-Document-Root $document_root;
    add_header X-Request-Filename $request_filename;
}

この設定により、ファイルの実際のパスを確認しながらデバッグできます。

Limit 関連変数の活用

レート制限の状態を監視します。

$limit_req_status でレート制限の動作を確認

nginx# レート制限の設定
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;

location /api {
    limit_req zone=mylimit burst=20 nodelay;
    limit_req_status 429;

    # レート制限のログ
    access_log /var/log/nginx/ratelimit.log;

    proxy_pass http://backend;
}

# レート制限時のカスタムエラーページ
error_page 429 /rate_limit.html;

この設定により、1 秒あたり 10 リクエストを超えるとレート制限が発動し、$limit_req_status が「REJECTED」などの値を取ります。

その他の便利な変数の活用

$http2$http3 でプロトコルバージョンを判定

HTTP/2 や HTTP/3 の使用状況を把握します。

nginxlog_format protocol '$remote_addr http2=$http2 http3=$http3 '
                    '[$time_local] "$request" $status';

access_log /var/log/nginx/protocol.log protocol;

location / {
    # HTTP/2 または HTTP/3 接続にはヘッダーを追加
    if ($http2) {
        add_header X-Protocol "HTTP/2";
    }
    if ($http3) {
        add_header X-Protocol "HTTP/3";
    }

    proxy_pass http://backend;
}

この設定により、クライアントがどのプロトコルバージョンを使用しているかを追跡できます。

$gzip_ratio で圧縮率を監視

gzip 圧縮の効果を測定します。

nginxgzip on;
gzip_types text/plain text/css application/json;

log_format gzip_log '$remote_addr "$request" $status '
                    'bytes_sent=$bytes_sent '
                    'body_bytes_sent=$body_bytes_sent '
                    'gzip_ratio=$gzip_ratio';

access_log /var/log/nginx/gzip.log gzip_log;

$gzip_ratio は圧縮率を表し、値が大きいほど圧縮効果が高いことを示します。

以下の図は、変数を活用したログ分析フローを示しています。

mermaidflowchart TB
  requests["リクエスト<br/>処理"] -->|変数取得| vars["各種変数<br/>$status<br/>$request_time<br/>$upstream_status<br/>$gzip_ratio"]
  vars -->|ログ出力| logfile["ログファイル<br/>/var/log/nginx/"]
  logfile -->|解析| analysis["ログ解析ツール<br/>GoAccess<br/>ELK Stack<br/>Datadog"]
  analysis -->|可視化| dashboard["ダッシュボード<br/>パフォーマンス監視<br/>エラー追跡<br/>トラフィック分析"]
  dashboard -->|改善| optimize["最適化<br/>ボトルネック解消<br/>セキュリティ強化"]

この図から、Nginx 変数を活用したログが分析・可視化され、最終的にサービスの最適化につながる流れがわかります。

まとめ

本記事では、Nginx の実務で即戦力となる変数 100 個を厳選し、カテゴリ別に分類して紹介しました。

記事のポイント

  • 早見表の提供: カテゴリ別に整理された早見表により、必要な変数を素早く見つけられます
  • 体系的な分類: リクエスト、レスポンス、アップストリーム、SSL/TLS など、12 のカテゴリに分類しました
  • 実践的な使用例: 各変数の具体的な設定例を豊富に提供し、すぐに実装できる内容になっています
  • 図解による理解: Mermaid 図を活用し、変数の活用フローを視覚的に示しました

主要な変数の使い分け

用途推奨変数
リクエスト追跡$request_id
クライアント IP 取得$remote_addr, $http_x_forwarded_for
レスポンス監視$status, $body_bytes_sent, $request_time
バックエンド監視$upstream_status, $upstream_response_time
セキュリティ監視$ssl_protocol, $ssl_cipher, $ssl_client_verify
キャッシュ監視$upstream_cache_status
プロトコル判定$http2, $http3, $scheme

Nginx の変数を適切に活用することで、詳細なログ記録、効果的なアクセス制御、パフォーマンスの最適化が実現できます。

本記事で紹介した変数と使用例を参考に、ぜひ皆さんの環境でも活用してみてください。運用の効率化やトラブルシューティングの迅速化に大きく貢献するはずです。

最後までお読みいただき、ありがとうございました。

関連リンク