Rediriger l'URL sortante spécifique vers une autre URL - linux ubuntu 16.04


Thor

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

Thor

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:

  1. 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
  1. Tirez docker le conteneur docker nginx

    docker tirer nginx

  2. 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é

  1. Définir les autorisations sur la configuration

chmod 600 /some/path/to/nginx.conf

  1. 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.

Articles connexes


Comment rediriger vers une URL spécifique

Gamelle J'ai le code suivant: public function numbergrouppost() { $groupname = Input::get('groupname'); $no_of_members = Input::get('no_of_members'); $create = Group::create([

rediriger une URL spécifique vers une autre URL avec .htaccess

emjay Je voudrais avoir un alias et rediriger l'URL tz433.tld/jobs/vers la page tz433.tld/about-us/jobs/. C'est ce que j'ai essayé de loin; cela n'a pas fonctionné: RewriteEngine On RewriteCond %{HTTP_HOST} !^www\.tz433\.tld/jobs/$ RewriteRule (.*) http://tz43

Rediriger vers / en pour une URL spécifique dans IIS

Siavash J'ai 2 URL pour mon site Web 1: domain1.com 2: domain2.com Je veux rediriger "domain2.com" vers "domain2.com/en" et si domain1.com est demandé, je ne veux pas qu'il soit redirigé. Google recherche depuis des heures, mais ne trouve pas de solution de co