Un servidor proxy inverso o equilibrador de carga es un dispositivo implementado normalmente 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 o equilibrador de carga admite una función de verificación de estado, puede utilizar el extremo de verificación de estado de Portal for ArcGIS para determinar si el portal 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 el tema Verificación de estado del portal en la API REST de ArcGIS.
Precaución:
La configuración que se detalla en este tema se debe realizar antes de federar cualquier sitio de ArcGIS Server en su portal de ArcGIS Enterprise. No se permite agregar un alias DNS ni un servidor proxy después de federar un sitio ArcGIS Server con su portal. Si necesita cambiar el nombre de host en la dirección URL de su organización, póngase en contacto con Esri Professional Services o con otro socio de consultoría de confianza para solicitar ayuda.
Dejar sin federar un sitio de ArcGIS Server tiene varias consecuencias importantes y no se puede subsanar fácilmente. Para obtener más información, consulte Administrar un servidor federado.
Tipos de equilibradores de carga
Los proxies inversos a veces se denominan equilibradores de carga, pero suelen ofrecer más funciones que la simple distribución de mensajes entrantes a través de destinos de back-end. Muchas implementaciones de servidor proxy inverso pueden funcionar en cualquiera de las capacidades que se describen a continuación, dependiendo de la configuración.
Las acciones de equilibrio de carga suelen diferenciarse por la capa del modelo de interconexión de sistemas abiertos (OSI, por sus siglas en inglés) en la que operan. Cuando se trabaja para integrar una tecnología de equilibrador de carga existente, es importante identificar qué tipo se está implementando, ya que afecta a la arquitectura general de la implementación.
Los equilibradores de carga de la capa 3/4 a veces se denominan equilibradores de carga de red o de nivel de paquete. Normalmente, estos equilibradores de carga no inspeccionan el tráfico entrante y, en su lugar, dirigen los paquetes TCP/UDP entrantes a los destinos de back-end. Las implementaciones más nuevas permiten la finalización de SSL en el equilibrador de carga, pero la sesión SSL del cliente se establece generalmente con el servidor o servidores de destino de back-end.
Los equilibradores de carga de capa 7 se conocen algunas veces como equilibradores de carga de aplicaciones o habilitados para las aplicaciones. Estos equilibradores de carga inspeccionan los mensajes entrantes y pueden tomar decisiones de generación de rutas en función de varios factores, así como modificar el contenido de esos mensajes antes de transferirlos al destino o los destinos de back-end. Los equilibradores de carga de capa 7 que utilicen HTTPS terminarán la comunicación SSL con el cliente y volverán a cifrar ese tráfico antes de transferir las solicitudes a los destinos HTTPS de back-end.
Preparar un servidor proxy inverso o equilibrador de carga
Antes de agregar Portal for ArcGIS al servidor proxy inverso de su organización, debe completar los siguientes pasos:
- Configure HTTPS (HTTP y HTTPS o solo HTTPS) en el servidor proxy inverso. De forma predeterminada, Portal for ArcGIS utiliza HTTPS para la comunicación. Consulte la documentación del producto de su servidor proxy para conocer el procedimiento de configuración de HTTPS.
Nota:
Portal for ArcGIS no admite la descarga de SSL por medio de un equilibrador de carga/servidor proxy inverso. Por lo tanto, si su configuración usa un servidor proxy inverso, debe dirigir el tráfico a ArcGIS Web Adaptor o directamente a Portal for ArcGIS a través de HTTPS.
Nota:
Debe asegurarse de que el nombre de contexto del servidor proxy inverso solo profundice un nivel en la dirección URL. Por ejemplo, puede tener una URL de proxy inverso como https://proxy.domain.com/enterprise, pero no puede tener una URL de proxy inverso como https://proxy.domain.com/myorg/enterprise.
Verifique que el servidor proxy admite la codificación gzip y que está configurado para permitir el encabezado Accept-Encoding. Este encabezado permite que se compriman las respuestas de HTTP 1.1 con la codificación de gzip. Por ejemplo, si se permite el encabezado, una solicitud para cargar el Map Viewer Classic devolverá una respuesta comprimida de alrededor de 1,4 MB al navegador. Si el encabezado se omite o no se permite, la solicitud devolverá una respuesta descomprimida de alrededor de 6,8 MB al navegador. Si la velocidad de su red es lenta, el Map Viewer Classic puede tardar bastante en cargarse si las respuestas no se comprimen. Esri recomienda permitir este encabezado como parte de la configuración de su servidor proxy inverso.
Equilibrador de carga de capa 3/4
El equilibrador de carga debe escuchar el puerto HTTPS predeterminado y transferir el tráfico a ArcGIS Web Adaptor o directamente al equipo o equipos de Portal for ArcGIS en el puerto 7443. Al finalizar las sesiones SSL de cliente en el servidor web interno de Portal for ArcGIS, asegúrese de que el certificado SSL presentado por ese servidor web sea válido tanto para el alias de DNS como para el FQDN del equipo o los equipos del sitio para evitar problemas de confianza del certificado. Por lo general, esto se puede lograr utilizando nombres alternativos de sujeto para el certificado SSL.
Nota:
Cuando no se utiliza el ArcGIS Web Adaptor, se debe utilizar el contexto predeterminado (/arcgis) para el sitio. Al integrar varios sitios de Portal for ArcGIS y ArcGIS Server en el mismo equilibrador de carga de capa 3/4, se debe usar un registro DNS único para cada sitio y la indicación de nombre de servidor (SNI) utilizada para dirigir el tráfico a los destinos de back-end adecuados.
Equilibrador de carga de capa 7
En la configuración del equilibrador de carga se debe establecer un encabezado X-Forwarded-Host con el nombre de host del alias DNS del sitio. Portal for ArcGIS espera que esta propiedad esté configurada en el encabezado enviado por el servidor proxy inverso y devolverá las solicitudes que coincidan con la URL del servidor proxy inverso. Si no utiliza ArcGIS Web Adaptor con su portal, confirme que el encabezado Host definido por el equilibrador de carga coincida con el nombre de host del equipo en el que está instalado Portal for ArcGIS.
Sugerencia:
Puede utilizar el extremo máquinas del Directorio de administrador de ArcGIS Portal para ver el nombre de host de la máquina en la que se ejecuta Portal for ArcGIS.
Por ejemplo, una solicitud enviada al extremo REST de Portal for ArcGIS (https://dnsalias.domain.com/arcgis/sharing/rest) se devolverá al cliente como la misma URL. Si la propiedad no está definida, Portal for ArcGIS puede devolver la URL del equipo interno donde se dirigió la solicitud (por ejemplo, https://portal.domain.com/arcgis/sharing/rest en lugar de https://dnsalias.domain.com/arcgis/sharing/rest). 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 tiene acceso así a cierta información sobre el equipo interno.
Además del encabezado X-Forwarded-Host, su equilibrador de carga debe ser capaz de dirigir redirecciones (códigos de respuesta HTTP 301 o 302). Todos los encabezados Location deben reescribirse en el equilibrador de carga para garantizar que el nombre de dominio totalmente calificado (FQDN) y el contexto de la respuesta coincidan con el valor WebContextURL del portal.
Agregar un portal
En las secciones siguientes se describe cómo agregar Portal for ArcGIS al servidor proxy inverso de su organización.
Equilibrador de carga de capa 3/4: agregar ArcGIS Web Adaptor o equipos de Portal for ArcGIS a la configuración del equilibrador de carga
Dado que la transferencia de tráfico hacia los destinos de back-end se producirá a través de TCP, el equipo o los equipos de cada sitio se deben agregar a la configuración del equilibrador de carga. Si utiliza ArcGIS Web Adaptor, los destinos de back-end deben apuntar al puerto del servidor o servidores web (normalmente 443 o 8443) que alojan el adaptador o adaptadores web. Al transferir el tráfico directamente a Portal for ArcGIS, los destinos de back-end deben apuntar al puerto 7443 en cada equipo del sitio.
Equilibrador de carga de capa 7: agregar ArcGIS Web Adaptor o equipos de Portal for ArcGIS a las directivas del servidor proxy
Después de configurar ArcGIS Web Adaptor con Portal for ArcGIS, ArcGIS Web Adaptor puede utilizarse con el servidor proxy inverso de su organización agregando componentes directamente a las directivas del proxy. Por ejemplo, si utiliza Apache como proxy inverso, deberá agregar ArcGIS Web Adaptor a las directivas ProxyPass del archivo de configuración del servidor web de Apache httpd.conf:
ProxyPass /webadaptorname https://webadaptorhost.domain.com/webadaptorname
ProxyPassReverse /webadaptorname https://webadaptorhost.domain.com/webadaptorname
Las directivas ProxyPass deben coincidir con el nombre designado para ArcGIS Web Adaptor (/webadaptorname en la muestra de arriba). Cuando no utilice ArcGIS Web Adaptor frente a Portal for ArcGIS, agregue las siguientes directivas donde /context es la ruta URL de nivel superior elegida:
ProxyPass /context https://portal.domain.com:7443/arcgis
ProxyPassReverse /context https://portal.domain.com:7443/arcgis
Configure un portal para usar un proxy inverso o equilibrador de carga
En las secciones siguientes se describe cómo configurar su portal para usar la URL del servidor proxy inverso y las tareas administrativas que se deben rehacer una vez configurada la URL.
Establecer la propiedad WebContextURL
La propiedad WebContextURL del portal le ayuda a construir las direcciones URL de todos los recursos que envía al usuario final. Haga lo siguiente para cambiar la WebContextURL:
- Abra un navegador web e inicie sesión en el Directorio de Portal for ArcGIS como miembro del rol de Administrador predeterminado de la organización de su portal. La dirección URL tiene el formato https://portal.domain.com:7443/arcgis/portaladmin.
- Haga clic en Sistema > Propiedades > Actualizar propiedades.
- En el cuadro de diálogo Update System Properties, inserte el JSON siguiente, sustituyendo la dirección URL de alias DNS o de su propio servidor proxy inverso tal como la ven los usuarios de fuera del firewall de su organización.
{ "WebContextURL": "https://dnsalias.domain.com/portal" }
Nota:
Portal for ArcGIS solo admite un único DNS.
Nota:
No puede utilizar un puerto no estándar (es decir, un puerto que no sea el 443) al configurar la propiedad WebContextURL.
- Haga clic en Actualizar propiedades.
Rehacer las tareas administrativas
Una vez que haya configurado el servidor proxy inverso con el portal, podrá acceder al portal a través de la dirección URL del servidor proxy inverso en lugar de la dirección URL de ArcGIS Web Adaptor. Todo aquello a lo que se acceda del sitio Web del portal o del directorio de Portal for ArcGIS devolverá la dirección URL del servidor proxy inverso.
Es necesario volver a completar las tareas administrativas siguientes usando la dirección URL del servidor proxy inverso:
Si había agregado servicios protegidos como elementos del portal con anterioridad, deberá eliminar los elementos originales y volverlos a agregar. Esto se debe a que los elementos originales utilizan la dirección URL de ArcGIS Web Adaptor en lugar de la dirección URL del servidor del proxy inverso. Consulte las instrucciones en Conectarse a servicios protegidos.
Tras configurar el servidor proxy inverso con el portal, es posible que necesite ajustar su configuración. Por ejemplo, si las operaciones o solicitudes de su implementación fallan con un error que indica que el tiempo de espera de la conexión se ha agotado, el problema puede ser que el valor de tiempo de espera del servidor proxy inverso sea demasiado corto. Para solucionar este error, plantéese aumentar el valor de tiempo de espera para permitir que se completen solicitudes de larga ejecución, como federar un servidor.