Баланс Загрузки Nginx / Прокси к восходящему потоку с Путем / Переписывает

В основном у меня есть ферма API как

192.168.1.1, 192.168.1.2, 192.168.1.3

Однако конечные точки имеют другую структуру папок (третьи стороны, которые я не могу исправить!)

Так в основном я хочу иметь конфигурацию nginx что-то вроде этого

upsteam api_servers{
    server 192.168.1.1/api/;
    server 192.168.1.2/myApp/api/;
    server 192.168.1.3/;
}
server{
    listen 80;
    location / {
        proxy_pass http://api_servers;
    }
}

Однако у Вас не может быть пути в вышестоящих серверах. Я предполагаю, что должен переписать их? Я знаю, как сделать это, чтобы входящий запрос переписал его, но не уверенный, как я могу переписать его по-другому, когда это переходит к каждому серверу бэкэнда.

Заранее большое спасибо!!

3
задан 19 August 2015 в 11:06
1 ответ

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

upsteam api_servers {
    server 127.0.1.1;
    server 127.0.1.2;
    server 192.168.1.3;
}

server {
    listen 127.0.1.1;
    location / {
        proxy_pass http://192.168.1.1/api/;
    }
}

server {
    listen 127.0.1.2;
    location / {
        proxy_pass http://192.168.1.2/myApp/api/;
    }
}

server {
    listen 80;
    location / {
        proxy_pass http://api_servers;
    }
}
4
ответ дан 3 December 2019 в 06:03

Теги

Похожие вопросы