проксирование в nginx завершается с ошибкой: неверный префикс URL - PullRequest
0 голосов
/ 29 апреля 2020

Я создаю прототип / PO C и у меня есть только 1 сервер для этого. Но я пытаюсь смоделировать 2 разных nginx веб-сервера. До сих пор у меня на сервере nginx были следующие файлы conf.d:

/etc/nginx/conf.d/registrar.conf
/etc/nginx/conf.d/router.conf

Из router.conf мне нужно вызвать registrar.conf и передать прокси на URL, который он отправляет обратно

Пока у меня есть это:

registrar.conf

 1 server{
 2         listen 10.2.2.2:8080;
 3         server_name registrar;
 4         root /var/www/registrar;
 5
 6         access_log /var/log/nginx/registrar.log;
 7
 8         location /register {
 9                 add_header Content-Type text/plain;
10                 return 200 "10.1.1.1";
11
12         }
13
14 }

, и я изменил маршрутизатор, чтобы он выглядел следующим образом:

   router.conf

  3 server {
  4         listen 10.2.2.2:80;
  5         server_name router;
  6
  7         root /var/www/router;
  8         access_log /var/log/nginx/router.log;
  9
 10
 11         location /router {
 12                set $target '';
 13                 content_by_lua_block {
 14                   res = ngx.location.capture('/register')
 15                   ngx.log(ngx.WARN, "TEST:" .. res.body)
 16                   ngx.var.target = res.body
 17                }
 18          proxy_set_header X-Forwarded-For $remote_addr;
 19          proxy_set_header Host $http_host;
 20          proxy_pass  http://$target;
 21    }
 22
 23    location /register {
 24         proxy_pass http://10.2.2.2:8080/register;
 25    }

На основании отладочной информации, я вижу, что маршрутизатор вызывает регистр и получает 10.1.1.1:8080.
Но когда я пытаюсь затем выполнить proxy_pass к нему в строке 20, я получаю сообщение об ошибке:

2020/04 / 29 15:39:08 [ошибка] 10219 # 10219: * 1 неверный префикс URL-адреса в «http: //», клиент: 198.136.255.252, сервер: маршрутизатор, запрос: «GET / router HTTP / 1.1», хост: « 10.2.2.2"

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