Nous avons 3 serveurs. L'un est le proxy frontal, et ensuite il y a les VM internes.
front-end/site-enabled/default
server {
listen 80;
rewrite ^(.*) https://$host$1 permanent;
location / {
proxy_pass http://10.10.0.56;
proxy_redirect default;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /beta {
proxy_pass http://10.10.0.63;
proxy_redirect default;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Maintenant, le vm 10.10.0.63
est nouveau. Nous voulons faire fonctionner deux systèmes en parallèle.
Nous avons ce genre d'ancienne règle dans le nouveau vm.
10.10.0.63/site-enabled/default (site activé)
server {
listen 80;
client_max_body_size 100M;
server_name localhost 127.0.0.1;
server_name_in_redirect off;
location /api {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:5050;
proxy_redirect default;
}
Le problème est qu'il y a un moyen de visiter http://example.com/beta/api
sans que nous ayons à changer les règles en 10.10.0.63/site-enabled/default
? C'est-à-dire sans que nous ayons à écrire location /beta/api
dans la règle de l'original location /api
.
Peut-on faire cela avec nginx ? Nous allons nous débarrasser de l'ancien système dans quelques semaines et il semble idiot de se donner tout ce mal pour changer d'url (nous pourrions avoir à modifier de nombreux endroits dans le code source !)
Gracias.
Je n'ai toujours pas de solution de rechange, mais j'ai jeté un coup d'œil à ceci. Comment supprimer rapidement et facilement une partie d'une URL dans Nginx avec HttpRewriteModule ?
J'ai dépouillé beta
. On dirait que ça marche.