@perrfect

Как правильно использовать мульти location nginx?

Добрый день.
Как правильно задать мульти location nginx?

Если делаю так, проксирование работает:
location = /test-a-1 {
       proxy_pass http://test-a-1;
       proxy_set_header Host $host;
       proxy_set_header X-Real-IP $real_remote_addr;
       proxy_redirect off;
   }

  location = /test-b-1 {
      proxy_pass http://test-b-1;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $real_remote_addr;
      proxy_redirect off;
  }


Когда делаю через такой мульти location, не работает:
location = /(test-a-[0-9]|test-b-[0-9]) {
                set $test $1;
                proxy_pass http://$test;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_redirect off;
                }
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ответы на вопрос 1
@dodo512
nginx.org/ru/docs/http/ngx_http_core_module.html#l...
Регулярные выражения задаются либо с модификатором “~*” (для поиска совпадения без учёта регистра символов), либо с модификатором “~” (с учётом регистра).

В регулярном выражении доступны именованные группы (?<name>...)
Их можно использовать для создания переменных вместо set $test $1;
location ~ ^/(?<test>test-a-[0-9]|test-b-[0-9]) {
    proxy_pass http://$test;

Возможно ещё потребуется добавить resolver
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы