Задать вопрос
@q2digger
никого не трогаю, починяю примус

Как обрабатывается regex в location nginx?

Приветствую,
Играюсь с ELK-стэк в докере, решил завести Кибану на внешний nginx. Делать надо с помощью location и столкнулся с тем, что если я добавляю работающий location для Kibana (он будет ниже) - ломаются другие уже имеюшиеся.
Добавляю такое:
location ~ (|/app/kibana|/bundles/|/status|/plugins|/elasticsearch/|)  {
	proxy_pass http://192.168.1.10:5601;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        rewrite /(.*)$ /$1 break;
    }


Проблема, как я понимаю, в конструкции (|/app/kibana|/bundles/|/status|/plugins|/elasticsearch/|) - объясните мне, почему оно начинается и заканчивается на знак OR - " | " , как обрабатывается этот location.

P.S. А перестает работать например такой location
location /portainer/ {
	proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_pass http://portainer/;
    }

    location ^~ /portainer/api/websocket/ {
	proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_http_version 1.1;
        proxy_pass http://portainer/api/websocket/;
    }
  • Вопрос задан
  • 297 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
daager
@daager
Затем nginx проверяет location’ы, заданные регулярными выражениями, в порядке их следования в конфигурационном файле. При первом же совпадении поиск прекращается и nginx использует совпавший location.

Как nginx обрабатывает запросы
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы