Вопрос: Как обслуживать определенные статические файлы с помощью 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?


5
2018-03-16 18:33


Источник




Ответы:


Я не вижу, что вам нужен отдельный location вообще. Просто rewrite следует сделать.

Например:

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

6
2018-03-16 18:39



Thx Майкл для ответа. Оказывается, для перезаписи достаточно простого /../сервера. Я отвечу на ваш ответ через 6 минут. - Barnabas Szabolcs