L’intégration en reverse proxy permet de faire transiter les appels Eulerian par une infrastructure administrée par vos équipes.
Cette configuration peut être utilisée pour répondre à des contraintes de sécurité, d’architecture ou de politique de cookies sur le domaine.
Elle n’apporte pas de gain de qualité de donnée par rapport à une intégration classique en délégation de domaine.
Deux modes d’intégration sont possibles :
Un chemin du domaine principal est dédié à Eulerian, par exemple /collecte.
Aucun nouveau sous-domaine ni certificat SSL supplémentaire à maintenir.
Un sous-domaine est dédié à Eulerian et pointe vers les serveurs proxy administrés par le client.
Le proxy relaie les appels vers la plateforme Eulerian cible.
En mode , un chemin du site est réservé à la collecte Eulerian.
Exemple :
https://www.mon-site.fr/collecte
Dans ce mode, le tag JavaScript principal doit intégrer le chemin dédié utilisé pour la collecte.
Remplacez <COLLECT_PATH> par le chemin dédié à Eulerian.
var s=window,v=document,e=s.location.hostname,i=(e||a).length,y=5381,k='script',o=v.createElement(k);
for(;i;){i-=1;y=(y*33)^e.charCodeAt(i)}y='_EA_'+(y>>>=0);
(function(e,a,s,y){s[a]=s[a]||function(){(s[y]=s[y]||[]).push(arguments);s[y].eah=e;};}(e,a,s,y));
i=new Date/1E7|0;o.ea=y;y=i%26;o.async=1;o.src='//'+e+p+'/'+String.fromCharCode(97+y,122-y,65+y)+(i%1E3)+'.js?2;1';
s=v.getElementsByTagName(k)[0];s.parentNode.insertBefore(o,s);})('/<COLLECT_PATH>','EA_push');
var s=window,v=document,e=s.location.hostname,i=(e||a).length,y=5381,k='script',o=v.createElement(k);
for(;i;){i-=1;y=(y*33)^e.charCodeAt(i)}y='_EA_'+(y>>>=0);
(function(e,a,s,y){s[a]=s[a]||function(){(s[y]=s[y]||[]).push(arguments);s[y].eah=e;};}(e,a,s,y));
i=new Date/1E7|0;o.ea=y;y=i%26;o.async=1;o.src='//'+e+p+'/'+String.fromCharCode(97+y,122-y,65+y)+(i%1E3)+'.js?2;1';
s=v.getElementsByTagName(k)[0];s.parentNode.insertBefore(o,s);})('/eulerian','EA_push');
Le chemin utilisé dans la configuration ne doit pas dépasser , afin d’éviter de surcharger les en-têtes.
En mode , le format du tag JavaScript ne change pas.
Vous pouvez utiliser le tag JavaScript du quick onboarding avec le sous-domaine alloué. Ce sous-domaine doit pointer vers votre serveur proxy.
Deux paramètres doivent être remplacés :
Chemin d’accès utilisé par le proxy.
Cible Eulerian fournie, au format XXX.eulerian.net.
location ~ ^/<COLLECT_PATH>/(.*)$ {
access_log /var/log/nginx/proxy.log;
proxy_pass https://<GRID_HOST_NAME>/$1$is_args$args;
proxy_set_header X-Eulerian "p;1;$remote_addr;$http_host;/<COLLECT_PATH>";
proxy_set_header Upgrade-Insecure-Requests "";
proxy_temp_file_write_size 64k;
proxy_connect_timeout 5s;
proxy_request_buffering on;
proxy_ssl_server_name on;
proxy_busy_buffers_size 64k;
proxy_ignore_headers X-Accel-Redirect X-Accel-Expires X-Accel-Limit-Rate X-Accel-Buffering X-Accel-Charset;
location ~ ^/eulerian/(.*)$ {
access_log /var/log/nginx/proxy.log;
proxy_pass https://test.eulerian.net/$1$is_args$args;
proxy_set_header X-Eulerian "p;1;$remote_addr;$http_host;/eulerian";
proxy_set_header Upgrade-Insecure-Requests "";
proxy_temp_file_write_size 64k;
proxy_connect_timeout 5s;
proxy_request_buffering on;
proxy_ssl_server_name on;
proxy_busy_buffers_size 64k;
proxy_ignore_headers X-Accel-Redirect X-Accel-Expires X-Accel-Limit-Rate X-Accel-Buffering X-Accel-Charset;
À titre indicatif, pour un volume de , il faut prendre en compte un trafic d’au moins .
Pour ce type de volume, prévoyez :
- au minimum ;
- une configuration ajustée à votre trafic ;
- éventuellement un réglage de
tcp_fin_timeout pour libérer les sockets plus rapidement ; - un mécanisme de load balancing et de failover.
Lorsque la librairie est appelée via le proxy, assurez-vous que la valeur suivante est correctement transmise :
La cible Eulerian est fournie au format eulerian.net.
Dans l’exemple original, la cible utilisée est :
L’exemple ci-dessous inclut également une mécanique permettant de supprimer la transmission de cookies spécifiques, avec les clés bar, baz et qux.
... Virtualhost en HTTPS ...
SSLProxyCheckPeerExpire off
ProxyPass / https://foo.eulerian.net/ connectiontimeout=10 timeout=10 retry=0
ProxyPassReverse / https://foo.eulerian.net/
RequestHeader unset X-forwarded-for
RequestHeader set X-Eulerian "p;1;%{REMOTE_ADDR}s"
RequestHeader edit* cookie "bar|baz|qux)=[^=;]*" ""
RequestHeader edit cookie "^[; ]*" ""
RequestHeader edit cookie "[; ]*quot; "" RequestHeader edit* cookie "; (; )*" "; "
- Le chemin utilisé ne doit pas dépasser .
- La cible
foo.eulerian.net est un exemple : utilisez la cible fournie par Eulerian. - La suppression de cookies
bar, baz et qux - La configuration doit être adaptée à votre environnement HTTPS.
- Le proxy est hébergé et administré dans votre infrastructure.
- Cette intégration ne remplace pas la configuration Eulerian : elle sert de relais vers la plateforme Eulerian.
- Le mode chemin dédié évite d’ajouter un sous-domaine ou un certificat SSL supplémentaire.
- Le mode host dédié nécessite un sous-domaine dédié pointant vers vos serveurs proxy.
- Le chemin configuré doit rester court : maximum .
- Les paramètres
<COLLECT_PATH> et <GRID_HOST_NAME> doivent être remplacés par les valeurs adaptées à votre configuration. - Sur les volumes élevés, l’infrastructure proxy doit être dimensionnée avec redondance et failover.
- Après déploiement, vérifiez que la librairie Eulerian est bien chargée et que la valeur
?2;1 est transmise.
L’intégration Eulerian en reverse proxy permet de faire transiter les appels de collecte par une infrastructure administrée par le client.
Elle peut répondre à des contraintes de sécurité, d’architecture ou de politique de cookies, mais elle par rapport à une intégration classique en délégation de domaine.
Le choix entre et dépend principalement de votre architecture technique, de la gestion des domaines et certificats, et de la capacité de votre infrastructure à absorber le trafic de collecte.