Skip to content

2025/03

HTTP ヘッダを表示する PHP サンプルコード

Web のテストを行う場合、「サーバ側で HTTP リクエストがどう見えているか?」が分かると便利な場合があります。 「Web サーバのログを確認する」「パケットをキャプチャする」などの選択肢があると思いますが、いずれもやや面倒です。 こういった場合、もし PHP が使えるのであれば「PHP スクリプトで HTTP ヘッダを表示させる」という方法があります。 今回はそういったケースで使える PHP のサンプルスクリプトをメモしておきます。

AWS CLI で CloudFront のキャッシュを削除する

awscli から CloudFront のキャッシュ削除 (Create Invalidation) を行うには以下のように実行します。

aws cloudfront create-invalidation --distribution-id ABCD0123456789 --paths "/T*"

これを実行するには IAM で最低限、下記の権限が付与されている必要があります。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "CFResourceLevelPermission",
      "Effect": "Allow",
      "Action": ["cloudfront:CreateInvalidation"],
      "Resource": "arn:aws:cloudfront::012345678901:distribution/ABCD0123456789"
    }
  ]
}

間接的アクセスの送信元アドレスを X-Forwarded-For で記録する

クライアントから LB や CDN、Reverse Proxy などを介さず、直接、サーバへアクセスする場合、サーバのログには「クライアントの送信元 IP アドレス」が記録されます。しかし、クライアントとサーバの間に LB や CDN、Reverse Proxy を介している場合、サーバから見た送信元 IP アドレスは「LB などのアドレス」に見えてしまいます。 これではサーバ側で正確な送信元を把握出来ない為、LB などで X-Forwarded-For というヘッダにオリジナルの送信元 IP アドレスを挿入します。 サーバは X-Forwarded-For が存在する場合、このヘッダを読み取ることで「本来の正確な送信元 IP アドレス」を理解することが出来ます。 今回は Apache のログに X-Forwarded-For を追加して記録する設定方法をメモしておきます。