Я создаю прототип / 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"