nginx - передача переменных заголовка запроса в исходящий URL-адрес в качестве параметра запроса - PullRequest
0 голосов
/ 03 марта 2019

У меня есть приложение, работающее на локальном хосте, прослушивающее порт 8080

nginx работает как обратный прокси-сервер, прослушивающее порт 80

Итак, запрос, поступающий на nginx через порт 80, отправляется наэто приложение прослушивает localhost: 8080 и ответ от этого приложения отправляется обратно пользователю

Теперь это приложение не может читать переменные заголовка из заголовка запроса и может только читать параметры запроса

Так что яхочу, чтобы nginx передавал значения заголовка в качестве параметров запроса в это приложение, прослушивая localhost: 8080

Например, скажем, в заголовке запроса есть пользовательская переменная с именем 'userid'.

Как мыпередать этот идентификатор пользователя как & userid = значение, добавленное к URL-адресу для прослушивания приложения на локальном хосте 8080

Мой текущий тестовый файл с доступным сайтом и с включенным сайтом:

server {

    location /test {

        proxy_pass http://localhost:8080;
    }

}

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Так что нет необходимости делать переписывание или что-то еще.Просто передайте параметры заголовка, которые вы хотите передать в качестве параметра запроса, в приложение localhost, как показано ниже, добавив к аргументам.

Если у вас есть настраиваемый параметр заголовка, такой как userid, это будет $ http_userid

server {

    location /test {

          set $args $args&host=$http_host;

          proxy_pass http://localhost:8080;
    }
 }
0 голосов
/ 03 марта 2019

Если у вас есть заголовок запроса с именем userid, он будет доступен в переменной Nginx с именем $http_userid.

. Вы можете изменить параметры запроса исходного запроса с помощью оператора rewrite...break.

Например:

location /test {
    rewrite ^(.*)$ $1?userid=$http_userid break;
    proxy_pass http://localhost:8080;
}

Подробнее см. в этом документе .

...