Rediriger l'URL sortante spécifique vers une autre URL - linux ubuntu 16.04
Je travaille sur la construction d'un très vieux programme qui a de nombreux liens obsolètes vers des dépendances.
Ces liens peuvent se trouver dans d'autres dépendances téléchargées à partir du Web, ce qui supprime la possibilité de modifier l'URL
Je suis capable de trouver toutes ces dépendances avec d'autres liens, mais changer les chemins est devenu une tâche sans fin.
Est-il possible de créer une liste de règles pour les URL sortantes qui correspondent une à une. Par example:
http://Oldserver.com/this/is/one/OldDependency.jar -> http://Newserver.com/this/is/one/with/other/url/NewDependency.jar
Peu importe l'outil utilisé pour le routage, iptables ou autre chose. Je suis prêt à tout mettre en place pour cela.
Cela doit se produire au niveau du système d'exploitation car les chemins se trouvent dans des fichiers tar
J'ai pu faire fonctionner cela en utilisant un nginx local. La meilleure solution ici était un conteneur nginx dockerisé.
je vais utiliser l'exemple ci-dessus
http://Oldserver.com/this/is/one/OldDependency.jar -> http://Newserver.com/this/is/one/with/other/url/NewDependency.jar
Pas:
Modifiez votre fichier hôte pour acheminer l'hôte vers votre hôte local
$ sudo vim /etc/hosts
Ajoutez cette ligne à votre fichier hosts
127.0.0.1 Oldserver.com
Tirez docker le conteneur docker nginx
docker tirer nginx
Enregistrez ce fichier de configuration nginx dans un chemin (les balises de code ne fonctionnent pas, désolé)
événements { worker_connections 4096; ## Par défaut : 1024 }
http { serveur { écouter 80 ; nom_serveur Oldserver.com;
location = /this/is/one/OldDependency.jar { proxy_pass http://Newserver.com/this/is/one/with/other/url/NewDependency.jar; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location / { proxy_pass http://Oldserver.com; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }
} }
Si vous avez plus de chemins, ajoutez ensuite au-dessus du caractère générique location /
. Le location /
transmet tous les chemins non appariés au serveur d'origine avec le chemin réservé
- Définir les autorisations sur la configuration
chmod 600 /some/path/to/nginx.conf
- Démarrez un conteneur docker nginx avec le fichier de configuration
docker run --name proxy -v /some/path/to/nginx.conf:/etc/nginx/nginx.conf:ro -p 80:80 -d nginx
Désormais, chaque demande adressée à Oldserver.com passera par votre proxy nginx et sera redirigée si elle correspond à l'une de vos configurations de localisation.