J'ai plusieurs sous-domaines, tous pointant vers une machine et une adresse IP. Sur cette machine, je veux que nginx agisse en tant que proxy inverse, et en fonction du sous-domaine utilisé pour accéder à la machine, je souhaite qu'il inverse le proxy vers un autre serveur. Tous les exemples que j'ai vus d'utiliser nginx comme proxy inverse utilisent 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?
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;
}
}
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;
}