4 votes

Nginx Load Balance / Proxy vers l'amont avec Path / Rewrite

En gros, j'ai une ferme API comme

192.168.1.1, 192.168.1.2, 192.168.1.3

Cependant, les points de terminaison ont une structure de dossier différente (tierces parties que je ne peux pas modifier !).

En gros, je veux avoir une configuration nginx comme celle-ci

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;
    }
}

Cependant, vous ne pouvez pas avoir de chemin dans les serveurs en amont. Je suppose que je dois les réécrire ? Je sais comment faire pour réécrire les requêtes entrantes, mais je ne suis pas sûr de la façon dont je peux les réécrire. différemment quand il va vers chaque serveur dorsal.

Merci d'avance !

6voto

Alexey Ten Points 7572

Il existe une solution de contournement pour cela. I proxy bloc de serveurs pour chaque amont.

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;
    }
}

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X