Skip To Content

Utilizar un servidor proxy inverso con ArcGIS Server

Un servidor proxy inverso es un equipo implementado dentro de una red perimetral (también conocida como zona desmilitarizada [DMZ] o subred filtrada) que gestiona las solicitudes de Internet y las reenvía a los equipos de la red interna. El reenvío de solicitudes en nombre del servidor proxy inverso enmascara la identidad de los equipos detrás del firewall de la organización, protegiendo así los equipos internos del ataque directo de los usuarios de Internet. Se pueden implementar funciones de seguridad adicionales en el servidor proxy inverso para proteger aún más la red interna de los usuarios externos.

Si su servidor proxy inverso admite una función de verificación de estado, puede utilizar el extremo de verificación de estado de ArcGIS Server para determinar si el sitio está disponible para recibir solicitudes. Esto resulta útil para determinar rápidamente si hay un fallo de software o hardware en el sitio. Para obtener más información, consulte Verificación de estado en la API REST de ArcGIS.

Agregar ArcGIS Server al servidor proxy inverso

ArcGIS for Server y ArcGIS Web Adaptor pueden utilizarse con el servidor proxy inverso de su organización agregando componentes directamente a las directivas del proxy. Por ejemplo, si utiliza Apache como servidor proxy inverso, deberá agregar ArcGIS Server a las directivas ProxyPass del archivo de configuración del servidor web de Apache httpd.conf:

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

Si se utiliza un servidor proxy inverso y la URL a su sitio no termina con la cadena predeterminada /arcgis (todo en minúsculas), también se deberá establecer la propiedad WebContextURL de ArcGIS Server. Esto ayuda a ArcGIS Server a construir las direcciones URL de todos los recursos que envía al usuario final. Haga lo siguiente para cambiar la WebContextURL:

  1. Inicie sesión en el Directorio del administrador de ArcGIS Server en http://gisserver.domain.com:6080/arcgis/admin con un usuario que tenga privilegios de administrador.
  2. Haga clic en sistema > propiedades > actualizar.
  3. En el cuadro de texto Propiedades, escriba el JSON siguiente, sustituyendo a la dirección URL de su propio ArcGIS Server tal como la ven los usuarios de fuera del firewall de su organización.
    {
       "WebContextURL": "http://gisserver.domain.com/mygis"
    }
  4. Haga clic en Actualizar.
  5. Reinicie ArcGIS Server en todos los servidores SIG del sitio. En Windows, esto se puede lograr reiniciando el servicio de Windows de ArcGIS Server en cada equipo.

Encabezados del proxy inverso y ArcGIS Server

Al integrar el proxy inverso con ArcGIS Server o ArcGIS Web Adaptor, tenga en cuenta que ambos componentes esperan la siguiente propiedad establecida en el encabezado por el servidor proxy inverso:

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

Si esta propiedad está establecida en el encabezado, ArcGIS Server y ArcGIS Web Adaptor devolverán al servidor proxy inverso las solicitudes que coincidan con la URL del servidor proxy inverso. Por ejemplo, una solicitud al Directorio de servicios de ArcGIS Server (http://reverseproxy.domain.com/arcgis/rest/services) se devolverá al cliente como la misma URL.

Si la propiedad del encabezado X-Forwarded-Host no está establecida, ArcGIS for Server y ArcGIS Web Adaptor podrían devolver la URL del equipo interno donde se dirigió la solicitud, por ejemplo, http://gisserver.domain.com/arcgis/rest/services en vez de http://reverseproxy.domain.com/arcgis/rest/services. Esto es problemático, ya que no clientes no podrán acceder a esta URL (marcado comúnmente como error 404 del navegador). Además, el cliente tendrá cierto conocimiento sobre el equipo interno.

Durante la solución de problemas de comunicación entre los clientes y ArcGIS for Server o ArcGIS Web Adaptor, se recomienda establecer la propiedad del encabezado X-Forwarded-Host en el servidor proxy inverso, ya que esta es una causa muy común de los fallos de comunicación. La forma en que puede establecer este encabezado varía según la implementación del servidor proxy inverso. Por ejemplo, en Apache se consigue con la directiva ProxyPreserveHost On dentro de su configuración:

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

Para obtener instrucciones sobre cómo pasar el encabezado del host original, consulte la documentación del producto para el servidor proxy inverso.