Назад | Перейти на главную страницу

Блок местоположения регулярного выражения не разрешает DNS в контейнере openshift

У меня есть приложение Angular, обслуживаемое OpenShift, и мне нужно перенаправить вызовы на разные микросервисы, работающие в одном кластере без внешних конечных точек.

Когда в моей конфигурации есть местоположение с регулярным выражением для прокси с использованием захваченной группы, я получаю сообщение об ошибке, говорящее, что для app-name.appnamespace.svc.cluster.local

server {
  listen 8081;



  default_type text/html;
  location / {
    root /usr/share/nginx/html;
    index index.html index.htm;
    try_files $uri $uri/ /index.html =404;
  }



  location ~ ^/api/(.*)$ {
    proxy_pass http://app-name.appnamespace.svc.cluster.local:8099/$1;
  }
}

Однако, когда я удаляю регулярное выражение, оно проходит без заминки.

server {
  listen 8081;



  default_type text/html;
  location / {
    root /usr/share/nginx/html;
    index index.html index.htm;
    try_files $uri $uri/ /index.html =404;
  }



  location /api/ {
    proxy_pass http://app-name.appnamespace.svc.cluster.local:8099;
  }
}

Проблема в том, что мы не хотим добавлять /api/ во всех наших микросервисах, но хотелось бы просто использовать маршруты, которые имеют логический смысл с точки зрения успокоения.