Нужно в зависимости от source_ip проксировать в разные proxy_pass? Я знаю, что if - это плохо, но вот такое будет работать?
То есть, если запрос приходит изнутри с некоторого IP, то посылать на некоторый внешний эндпоинт. Если с той стороны к nginx обращение, чтобы он сервису внутри пересылал. Сервисы с обоих сторон работают асинхронно, они не держат открытую сессию, то есть ушел запрос, закрылось соединение, потом с той стороны сервис посылает ответ первому серивису, закрылось соединение.
location / {
if ($remote_addr = "10.10.10.10") {
set $proxy_pas "https://183.23.10.4/somepath";
}
if ($remote_addr= "183.23.10.4") {
set $proxy_pas "http://10.10.10.10:8080";
}
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_request_buffering off;
proxy_pass $proxy_pas;
}
Мапами, к сожалению, можно только в http контексте, а туда у меня доступа нет =(
Если ты вынесешь map за пределы server {} в этом же файле - это и будет http {}
Обсуждают сегодня