web-dev-qa-db-ja.com

nginxで特定の静的ファイルを提供する方法は?

/api/lang?lang=enのようなクエリがあり、nginxで/server/i18n-angular/en.jsonとして提供したい。どうやってやるの?

次のディレクトリ構造があります。

/public/
/server/i18n-angular/en.json

私は次の設定をしていますが、nginxはその時点でインデックスディレクティブを使用するのは間違っていると言っています。

server {
  root /public
  ...
  location /api/lang {
    if ($args ~* "\?lang=(.+)") {
      set $language $1;
      index ../server/i18n-angular/$language.json;
    }
  }
} 

indexの代わりにどのディレクティブを使用すればよいですか?

6
Barney

別のlocationが必要だとはまったく思いません。単純なrewriteで十分です。

例えば:

server {
    rewrite /api/lang /server/i18n-angular/$arg_lang.json last;
6
Michael Hampton