Как разрешить запросы, включая корневые URL-адреса и «proxy_pass» Nginx? - PullRequest
0 голосов
/ 05 февраля 2019

При использовании Nginx в качестве шлюза службы запросы с использованием URL-адреса, например /js/jquery.js, по понятным причинам не будут обрабатываться.

Это похоже на то, что было бы простым решением, включающим $http_origin, но я этого не сделалудалось выяснить это.

Мы поддерживаем несколько различных сервисов с помощью Docker и используем контейнер Nginx для обработки маршрутизации.Для страниц, выполняющих запросы с относительными URL-адресами, такими как js/jquery.js, это прекрасно работает, так как браузеры добавят это к текущему URL-адресу.

Для простого примера:

http {

    server {

        listen       80;
        server_name  $HOSTNAME;

        location /video {
            include proxy_headers.conf;
            proxy_pass   http://$HOSTNAME:8000/video;
        }
    }
}

Без косой черты работает, так как запрашивает domain/video/lib/..:

<link rel="stylesheet" href="lib/bootstrap.min.css">

Скосая черта не делает, поскольку запрашивает domain/lib/..:

<link rel="stylesheet" href="/lib/bootstrap.min.css">

Такое ощущение, что решение состоит в том, чтобы проверить, сделал ли $http_origin запрос из /video, а затем перенаправить еготакже не начинался с /video.

Поскольку в конфигурационных файлах Nginx не предусмотрено несколько условий, я не был уверен, как лучше всего это попробовать.Я уверен, что есть тривиальное решение, учитывая, насколько распространенной должна быть эта проблема.Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...