Comment inverser le proxy vers différents endroits en fonction du sous-domaine dans Nginx?

13

J'ai plusieurs sous-domaines, tous pointant vers une machine et une adresse IP. Sur cette machine, je veux que nginx agisse comme proxy inverse, et selon le sous-domaine utilisé pour accéder à la machine, je veux qu'il inverse le proxy vers un autre serveur. Tous les exemples que j'ai vus d'utiliser nginx comme utilisation de proxy inverse location, mais si je comprends bien, cela ne fonctionne que pour le chemin, pas pour différents sous-domaines. Comment puis-je réaliser ce que je veux?

markasoftware
la source
2
Cela pourrait être un peu trop large. Pouvez-vous publier plus sur ce que vous avez déjà essayé?
Will

Réponses:

27

Sauf si j'ai mal lu votre question: vous configurez simplement des blocs de serveur pour chaque sous-domaine et définissez le proxy inverse correct pour la racine de ce sous-domaine, c'est-à-dire quelque chose dans le sens de:

 server {
        server_name subdomain1.example.com;
        location / {
            proxy_pass       http://hostname1:port1;
        }
 }
 server {
        server_name subdomain2.example.com;
        location / {
            proxy_pass       http://hostname2:port2;
        }
 }
HBruijn
la source
Désolé pour la réponse tardive, mais je l'ai fait fonctionner!
markasoftware
3

De la même manière.

location /foo {
    rewrite ^/foo(.+)$ /$1 break;
    proxy_pass http://foo;
}

location /bar {
    rewrite ^/bar(.+)$ /$1 break;
    proxy_pass http://bar;
}
drookie
la source
1
Ce n'était pas exactement ce que je cherchais. Voir la réponse acceptée
markasoftware
1
La mastication et la digestion sont le fardeau du demandeur, pas le mien.
drookie