コンテンツにスキップ

Blog

Ubuntu の Nginx で Fancy Index を利用する

以前に以下のメモを書きました。

改めて Ubuntu 環境下の Nginx で Fancy Index を有効化する方法をメモしておきます。 Nginx のバージョンですが、Ubuntu 標準リポジトリのものは Nginx 公式リポジトリ上のものより、ややバージョンが古いです。 Nginx 公式のものを使いたくなる… のですが、モジュールを追加したい場合は Ubuntu 標準リポジトリ上の Nginx を使った方が簡単です。 今回は Fancy Index モジュールを使うことになる為、(Nginx 公式版では無く) Ubuntu 標準リポジトリ上の Nginx を使うことにします。

Ubuntu 24.04LTS の標準リポジトリにある Nginx の差

Ubuntu の標準リポジトリには異なる条件でパッケージングされた、複数の Nginx が存在します。 これらはビルドオプションは同じようですが、搭載されているモジュールが異なるようです。 この差を確認した結果をメモしておきます。

Ubuntu の Nginx で autoindex を使い、ファイル・ディレクトリの一覧を表示する

Nginx で autoindex 機能を使うとディレクトリへアクセスされた際、そのディレクトリ中に存在するファイルやディレクトリの一覧を表示させることが出来ます。 今回は (Ubuntu 標準リポジトリでは無く) Nginx 公式リポジトリから Nginx をインストールし、autoindex を有効化する手順をメモしておきます。

Ubuntu で tshark を対話せずにインストールする

Ubuntu で tshark をインストールする際、Should non-superusers be able to capture packets? のようなメッセージが表示され、Yes or No の対話的入力を求められる場合があります。 これでは「スクリプト中で tshark をインストールしたい」という場合、入力が要求されてスクリプトが止まってしまい不便です。 今回はこの対話的入力無しに tshark をインストールする方法をメモしておきます。

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 で最低限、下記の権限が付与されている必要があります。

{
  "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 を追加して記録する設定方法をメモしておきます。