NGINX: запросить происхождение как условие - PullRequest
0 голосов
/ 29 октября 2018

все. У меня есть два экземпляра докера с обратным прокси на моем сервере, я могу получить доступ к каждому экземпляру с https://my.sub.domain/foo/docker и https://my.sub.domain/bar/docker. По завершении своей задачи оба докера хотят перенаправить на https://my.dub.domain/docker/result.

Я могу заставить один из экземпляров докера отображать страницу завершения с помощью перезаписи. Теперь я пытаюсь сделать свою перезапись условной, исходя из того, из какого подкаталога (/ foo / docker или / bar / docker) поступил запрос на / docker / result.

Вот мой конфиг для справки:

============== Экземпляр Docker 1 ==============

location  /foo/docker {
proxy_set_header X-Real-IP  $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
rewrite /gen(/.*) $1 break;
proxy_pass http://host:port1/docker;
#ProxyPassReverse http:/host:port1/docker;
}

============== Экземпляр Docker 2 ==============

location  /bar/docker {
proxy_set_header X-Real-IP  $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
rewrite /mp3(/.*) $1 break;
proxy_pass http://host:port2/docker;
#ProxyPassReverse httP://host:port2/docker;
}

============== Страница результатов Docker ==============

Это работает для отображения результата foo / docker, даже когда я хотел bar. Я хочу сделать условие, чтобы выбрать либо foo, либо bar.

location /docker/result {
 rewrite (.*)/foo$1;
}

=============================================== =

Фактически оба докера будут использовать один и тот же URL для результатов, при этом источник запроса страницы результатов решает, какая перезапись происходит.

Я думал сделать что-то вроде

if ($Request_Uri ~ /foo/){
#do the thing
}
if ($Request_Uri ~ /bar/){
#do some other thing
}

но я не смог найти встроенную переменную, которая содержала бы URI источника запроса.

...