URIパスを別ディレクトリへ置き換える設定(aliasディレクティブ)

広告

alias ディレクティブは、リクエストの URI のパスの一部を、別のディレクトリに置き換えるためのディレクティブです。主に location と組み合わせて使用します。ここでは Nginx における alias ディレクティブの使い方について解説します。

aliasディレクティブの書式

alias ディレクティブは、 location とマッチした URI のパス部分を、指定したディレクトリに置き換えるために使用します。 alias ディレクティブの書式は次の通りです。

Syntax:   alias path;
Default:  —
Context:  location

alias ディレクティブは location コンテキスト内で使用できます。引数として、置き換え先のディレクトリのパスを指定します。

server {
  location /images/ {
    alias 置き換え先のディレクトリのパス;
  }
}

パスを絶対パスで指定する場合、置き換えるパスを c:\data\images\ にする場合は c:/data/images/ となります。

server {
  location /images/ {
    alias c:/data/images/;
  }
}

パスを相対パスで指定する場合は Nginx のインストールディレクトリ(起動ディレクトリ)を基準とします。。インストールしたディレクトリが c:\nginx\ だった場合、置き換えるパスを c:\nginx\data\ にする場合は data/ となります。

server {
  location /images/ {
    alias data/;
  }
}

絶対パス・相対パスいずれの場合も末尾のスラッシュ(/)を忘れると正しく動作しないため注意してください。

alias ディレクティブでは相対パスで指定することも可能ですが、環境による違いを避けるため、一般的には絶対パスで指定することが推奨されています。

aliasディレクティブの設定例

alias ディレクティブの設定例をいくつか見ていきます。

http {
  server {
    root c:/nginx/http;

    location /images/ {
      alias c:/data/images/;
    }
  }
}

alias ディレクティブを使い、リクエストの URL のパスが /images/ とマッチした場合、 /images/ の部分が c:/data/images/ に置き換えられます。

/images/profile.png のようなリクエストがあった場合、 c:/data/images/profile.png にあるファイルが返されます。

なお alias ディレクティブと root ディレクティブは似ている部分がありますが、 alias の場合はマッチした部分のパスを置き換えるのに対して、 root の場合はマッチしたパスをそのまま後ろに連結する点が異なります。

先ほどの例で aliasroot に置き換えてみます。

http {
  server {
    root c:/nginx/http;

    location /images/ {
      root c:/nginx/data;
    }
  }
}

この場合は /images/profile.png のようなリクエストがあった場合、 c:/nginx/data/images/profile.png が返されます。

location コンテキストについては「リクエストされたURLのパスに応じて処理を分岐(locationコンテキスト)」を参照されてください。

動作確認

それでは実際に alias ディレクティブの動作を確認してみます。 Nginx の設定ファイルである nginx.conf ファイルで http コンテキストに次のように設定しました。(必要な部分のみの抜粋です)。

http {
    server {
        root  c:/nginx/html;

        location /images/ {
            alias c:/data/images/;
        }
    }
}

alias ディレクティブを使用して、リクエストのパスが /images/ とマッチした場合、その部分が c:/data/images/ に置き換えられます。

c:/data/images/ ディレクトリには画像ファイルが一つ配置されています。

aliasディレクティブ(1)

ブラウザを起動し、次の URL へアクセスします。

http://localhost/images/circle.png

location とマッチした部分が alias によって置き換えられ、c:/data/images/circle.png にあるファイルが返されます。

aliasディレクティブ(2)

このように alias ディレクティブを設定することで、 location とマッチした URI のパス部分を、指定したディレクトリに置き換えることができます。

-- --

Nginx における alias ディレクティブの使い方について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。