Skip To Content

Utilisation d'un serveur proxy inverse avec ArcGIS Server

Un serveur proxy inverse est un ordinateur déployé sur un réseau de périmètre (appelé également zone démilitarisée [DMZ] ou sous-réseau filtré) qui gère des requêtes provenant d'Internet et les transmet aux machines de votre réseau interne. La transmission des requêtes via un serveur proxy inverse permet de masquer l'identité des machines derrière le pare-feu de votre organisation et ainsi de protéger les machines en interne contre toute attaque provenant des utilisateurs d'Internet. Vous pouvez intégrer des fonctions de sécurité supplémentaires au serveur proxy inverse pour protéger davantage votre réseau interne contre toute attaque provenant de l'extérieur.

Si votre serveur proxy inverse prend en charge une fonction de contrôle de l'intégrité, vous pouvez utiliser l'extrémité de contrôle de l'intégrité d'ArcGIS Server pour déterminer si le site peut recevoir des requêtes. Ceci est utile pour déterminer rapidement si le site rencontre une défaillance logicielle ou matérielle. Pour plus d'informations, reportez-vous à Contrôle de l'intégrité dans l'API REST d'ArcGIS.

Ajout d'ArcGIS Server à votre serveur proxy inverse

Vous pouvez utiliser ArcGIS Server et ArcGIS Web Adaptor avec le serveur proxy inverse de votre organisation en ajoutant directement les composants aux directives de proxy. Par exemple, si vous utilisez Apache comme serveur proxy inverse, vous devez ajouter ArcGIS Server aux directives ProxyPass du fichier de configuration du serveur Web Apache httpd.conf :

ProxyPass /arcgis http://gisserver.domain.com:6080/arcgis
ProxyPassReverse /arcgis http://gisserver.domain.com:6080/arcgis

Si vous utilisez un serveur proxy inverse et que l'URL vers votre site ne se termine pas par la chaîne par défaut /arcgis (en minuscules), vous devez également définir la propriété WebContextURL d'ArcGIS Server. Cela permet à ArcGIS Server de créer les URL correctes sur toutes les ressources transmises à l'utilisateur final. Procédez comme suit pour modifier WebContextURL :

  1. En tant qu'utilisateur doté de privilèges d'administrateur, connectez-vous au répertoire administrateur d'ArcGIS Server à l'adresse ttp://gisserver.domain.com:6080/arcgis/admin.
  2. Cliquez sur système > propriétés > mettre à jour.
  3. Dans la zone de texte Propriétés, insérez la notation JSON suivante en remplaçant votre URL ArcGIS Server, telle qu'elle apparaît aux utilisateurs en dehors du pare-feu de votre organisation.
    {
       "WebContextURL": "http://gisserver.domain.com/mygis"
    }
  4. Cliquez sur Mettre à jour.
  5. Redémarrez ArcGIS Server sur chaque serveur SIG du site. Sous Linux, exécutez les scripts stopserver et startserver figurant dans le dossier d'installation de chaque machine.

En-têtes de proxy inverse et ArcGIS Server

Lorsque vous intégrez votre proxy inverse à ArcGIS Server ou ArcGIS Web Adaptor, sachez que ces deux composants exigent que vous définissiez la propriété suivante dans l'en-tête envoyé par le serveur proxy inverse :

X-Forwarded-Host=<FQDN of reverse proxy server>

Si cette propriété est définie dans l'en-tête, ArcGIS Server et ArcGIS Web Adaptor renvoient au serveur proxy inverse des requêtes qui correspondent à l'URL du serveur proxy inverse. Par exemple, une requête destinée au répertoire des services ArcGIS Server (http://reverseproxy.domain.com/arcgis/rest/services) sera renvoyée au client sous la forme de l'URL correspondante.

Si la propriété d'en-tête X-Forwarded-Host n'est pas définie, ArcGIS Server et ArcGIS Web Adaptor risquent de renvoyer l'URL de la machine interne vers laquelle la requête était dirigée, à savoir http://gisserver.domain.com/arcgis/rest/services au lieu de http://reverseproxy.domain.com/arcgis/rest/services. Cela pose un problème, car les clients ne pourront pas accéder à cette URL (erreur 404 du navigateur). Le client disposera également d'informations sur la machine interne.

Lorsque vous dépannez des problèmes de communication entre les clients et ArcGIS Server ou ArcGIS Web Adaptor, nous vous conseillons de définir la propriété d'en-tête X-Forwarded-Host sur le serveur proxy inverse, car c'est souvent la cause principale des erreurs de communication. La configuration de cet en-tête dépend de la mise en œuvre de votre serveur proxy inverse. Par exemple, Apache utilise la directive ProxyPreserveHost On intégrée à sa configuration :

...
ProxyPreserveHost On ProxyPass /arcgis http:///arcgis ProxyPassReverse /arcgis http:///arcgis
...

Pour savoir comment transmettre l'en-tête de l'hôte d'origine, consultez la documentation de votre serveur proxy inverse.