Nginx + Squid = relay :)

21 août 2015 - truc&astuce

C’était une de mes prises de tête aujourd’hui : je ne peux pas attaquer un serveur directement en raison d’un problème de crossdomain. Une de nos applis flash (shame on us !) a besoin d’accéder à fpdownload.adobe.com pour charger des dépendances mais aujourd’hui surprise, leur crossdomain.xml a changé !

Pô grave, on va pointer les dépendances vers chez nous, on contrôle notre crossdomain.xml après tout. Mais comment faire passer notre serveur pour celui de fpdownload.adobe.com ? Par un proxy comme ça on ne stocke rien.

Premier test :

location /pub {
  rewrite (.*) http://fpdownload.adobe.com$1 last;
  proxy_pass http://monSuperProxySquid:3128;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header Host fpdownload.adobe.com;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

Ah zut, je n’arrive à obtenir que des 302… Hé Nginx ! Mon proxy_pass c’est pas fait pour décorer !

Un café plus tard…

Ah oui, c’est écrit dans la doc : “If a replacement string starts with “http://” or “https://”, the processing stops and the redirect is returned to a client.” (cf the doc)

Bon ben on va arrêté de mettre http devant alors ! Mais j’en ai besoin quand même un moment ou un autre, sinon mon Squid va être perdu. Aller, on va la faire à la sioux…

location /pub {
  rewrite (.*) /http/fpdownload.adobe.com$1 last;
}

location /http {
  internal;
  rewrite ^/([^/]*)/(.*)$ $1://$2 break; #vous avez vu http:// ? moi non...
  proxy_pass http://monSuperProxySquid:3128;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header Host fpdownload.adobe.com;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

Et voilà, http://monserver.fr/pub/toto va chercher sa donnée sur http://fpdownload.adobe.com/pub/toto !

A venir dans quelques temps : un point sur les proxy.



Voir aussi :

Gérer les accès à plusieurs clusters kunernetes

30 octobre 2018 - docker truc&astuce k8s -

Mon utilisation de Traefik

30 octobre 2018 - docker truc&astuce article -

Construction d'image non x86 à base d'image officielle

31 décembre 2017 - docker truc&astuce -