Protocolo Apache JServ


El protocolo Apache JServ ( AJP ) es un protocolo binario que puede enviar solicitudes entrantes desde un servidor web a través de un servidor de aplicaciones que se encuentra detrás del servidor web. AJP es un protocolo altamente confiable y nunca debe exponerse a clientes no confiables, que podrían usarlo para obtener acceso a información confidencial o ejecutar código en el servidor de aplicaciones. [1]

También admite cierta supervisión en el sentido de que el servidor web puede hacer ping al servidor de aplicaciones. Los implementadores web suelen utilizar AJP en una implementación con equilibrio de carga en la que uno o más servidores front-end web envían solicitudes a uno o más servidores de aplicaciones. Las sesiones se redirigen al servidor de aplicaciones correcto mediante un mecanismo de enrutamiento en el que cada instancia del servidor de aplicaciones recibe un nombre (llamado ruta ). En este escenario, el servidor web funciona como un proxy inverso [2] para el servidor de aplicaciones. Por último, AJP admite atributos de solicitud que, cuando se completan con configuraciones específicas del entorno en el proxy inverso, proporcionan una comunicación segura entre el proxy inverso y el servidor de aplicaciones. [3] [4]

AJP se ejecuta en Apache HTTP Server 1.x usando el mod_jk complemento y en Apache 2.x usando y los módulos equilibradores de proxy juntos mod_proxy_ajp. mod_proxyExisten otras implementaciones de servidores web para: lighttpd 1.4.59, [5] nginx , [6] Grizzly 2.1, [7] e Internet Information Services . [2]

Los servidores de aplicaciones de contenedores web que admiten AJP incluyen: Apache Tomcat , WildFly (anteriormente JBoss AS) y GlassFish .

Alexei Kosut desarrolló originalmente el Protocolo Apache JServ en julio de 1997 [8] pero la especificación de la versión 1.0 se publicó más tarde el 29 de julio de 1998. [9] También escribió las primeras implementaciones del mismo en el mismo mes, con los lanzamientos de Apache Motor de servlet JServ 0.9 y Apache mod_jserv 0.9a (lanzado el 30 de julio de 1997). [10]

La especificación se actualizó a la versión 1.1 el 9 de septiembre de 1998. [11] También en 1998, se creó y publicó un protocolo renovado en las versiones de especificación 2 [12] y 2.1, [8] sin embargo, nunca se adoptó.