Рейтинг:0

Nginx не сопоставляет URL-адрес с действительным регулярным выражением (это выглядит действительным для меня и онлайн-тестеров регулярных выражений)

флаг us

Я использую нпм(Nginx прокси-менеджер) для управления моей конфигурацией nginx.

npm сгенерировал этот блок местоположения:

расположение ~* ^/docker-compose-ui/?(.*)$ {
    установить $upstream http://docker_compose_ui:5000/$1$request_uri;
    proxy_set_header Хост $host;
    proxy_set_header X-Forwarded-Scheme $scheme;
    proxy_set_header X-Forwarded-Proto $ схема;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass $ вверх по течению;



    proxy_set_header Обновить $http_upgrade;
    proxy_set_header Соединение $http_connection;
    прокси_http_версия 1.1;



    add_header X-тестирование "соответствие: $1, r_uri: $request_uri";
  }

Он соответствует этому URL: http://192.168.1.148/docker-compose-ui/

но он не соответствует ни одному из ресурсов страницы, поэтому страница загружается без какого-либо рабочего стиля или javascript.

Я вижу заголовок, который я добавил: X-тестирование: соответствие: , r_uri: /docker-compose-ui/

Но не на любом из активов, если я попытаюсь http://192.168.1.148/docker-compose-ui/scripts/directives/actions.js напрямую, все, что я получаю, это ошибка 502 неверный шлюз.

Я пробовал кучу вещей, даже добавлял местоположение, чтобы оно соответствовало активам:

~* ^/docker-compose-ui/(images/|img/|scripts/|script/|javascript/|js/|bower_components/|css/|stylesheets/|flash/|media/|static/|robots.txt |humans.txt|favicon.ico)

Но ничего не работает, nginx отказывается проксировать что-либо кроме /докер-составить-интерфейс/.

Почему Nginx игнорирует указанные мной местоположения и отказывается прокси-активы?

Рейтинг:2
флаг gr

Помимо конфигурации, которую вы предоставляете, требуется резольвер определены для правильной работы (что, скорее всего, является причиной HTTP 502 Плохой шлюз ошибка), добавление $request_uri в конец вашего восходящего URL-адреса - полная ерунда. Давайте посмотрим, что будет для URL-адреса, который вы указали в качестве примера:

http://192.168.1.148/docker-compose-ui/scripts/directives/actions.js

Переменные, используемые для составления $ вверх по течению будут иметь следующие значения:

$1 скрипты/директивы/actions.js
$request_uri/docker-compose-ui/scripts/directives/actions.js

Это означает, что весь $ вверх по течению переменная (которая установлена ​​как http://docker_compose_ui:5000/$1$request_uri) будет равно

http://docker_compose_ui:5000/scripts/directives/actions.js/docker-compose-ui/scripts/directives/actions.js

Вам кажется, что это нормально? Я так не думаю.

Вместо этого попробуем это:

расположение ^~ /docker-compose-ui {
    переписать ^/docker-compose-ui/?(.*) /$1 break;

    proxy_set_header Хост $host;
    proxy_set_header X-Forwarded-Scheme $scheme;
    proxy_set_header X-Forwarded-Proto $ схема;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass http://docker_compose_ui:5000;

    proxy_set_header Обновить $http_upgrade;
    proxy_set_header Соединение $http_connection;
    прокси_http_версия 1.1;
}

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.