El Protocolo JServ Apache ( AJP ) es un protocolo binario esa lata de proxy peticiones 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 que no sean de confianza, 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 web front-end 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 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. [2] [3]
AJP se ejecuta en Apache HTTP Server 1.x usando el complemento mod_jk y en Apache 2.x usando los módulos Proxy AJP, mod_proxy y balanceador de proxy juntos. Existen implementaciones para lighttpd versión 1.5, [4] nginx , [5] Grizzly 2.1, [6] y el servidor de información de Internet . [7]
Los contenedores web que admiten AJP incluyen Apache Tomcat , JBoss AS / WildFly y GlassFish .
Historia
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 las versiones de Apache JServ servlet engine 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ó un protocolo renovado y se publicó en las versiones de especificación 2 [12] y 2.1, [8] sin embargo, nunca se adoptó.
En 1999, Sun Microsystems donó su implementación de referencia JavaServer Web Development Kit (JSWDK; con nombre en código Tomcat) a Apache Software Foundation . Esto se convirtió en Apache Tomcat versión 3.0, el sucesor de JSWDK 2.1, y descarriló el desarrollo adicional del motor de servlet Apache JServ y AJP hacia el soporte de la API de servlet Java versión 2.1. [13]
La especificación actual permanece en la versión 1.3, [14] sin embargo, hay una propuesta de extensión publicada [15] así como una propuesta 1.4 experimental archivada. [dieciséis]
Ver también
- Servicios web para portlets remotos
Referencias
- ^ "Lectura / inclusión de archivos AJP en Apache Tomcat (CVE-2020-1938) y Undertow (CVE-2020-1745)" . Portal del cliente de Red Hat . Consultado el 1 de marzo de 2020 .
- ^ "NativeSPAttributeAccess" . Consorcio Shibboleth . Consultado el 13 de noviembre de 2017 .
- ^ "Módulo Apache mod_proxy_ajp" . Proyecto de servidor HTTP Apache . Consultado el 13 de noviembre de 2017 .
- ^ "Documentos ModProxyCore - Lighttpd - Lighty Labs" . redmine.lighttpd.net . Consultado el 9 de octubre de 2017 .
- ^ Yao (姚伟斌), Weibin (6 de octubre de 2017). "nginx_ajp_module: admite proxy de protocolo AJP con Nginx" . Consultado el 9 de octubre de 2017 , a través de GitHub.
- ^ "AJP" . Guía del usuario de Grizzly 2.3 . java.net . Consultado el 29 de abril de 2013 .
- ^ "Conector BonCode Apache Tomcat AJP 1.3" . boncode.net . Consultado el 9 de octubre de 2017 .
- ^ a b Barbieri, Federico; Fumagalli, Pierpaolo; Kluft, Ian; Korthof, Ed; Mazzocchi, Stefano; Pool, Martin (30 de junio de 1998). "Protocolo Apache JServ versión 2.1" . Proyecto Java Apache . Archivado desde el original el 4 de agosto de 2003.
- ^ Kosut, Alexei (29 de julio de 1998). "Protocolo Apache JServ versión 1.0" . Proyecto Java Apache . Archivado desde el original el 15 de abril de 2003.
- ^ "Historial de cambios - Proyecto Apache JServ" . Proyecto Java Apache . Archivado desde el original el 16 de abril de 2003.
- ^ Kosut, Alexei (9 de septiembre de 1998). "Protocolo Apache JServ Versión 1.1" . Proyecto Java Apache . Archivado desde el original el 4 de agosto de 2003.
- ^ Kluft, Ian; Korthof, Ed; Mazzocchi, Stefano (15 de febrero de 1998). "Protocolo Apache JServ versión 2" . Proyecto Java Apache . Archivado desde el original el 5 de agosto de 2003.
- ^ "La historia del origen de Tomcat" . TechNotif . Consultado el 25 de julio de 2018 .
- ^ "Referencia de protocolo AJP - AJPv13" . Apache Tomcat . Consultado el 20 de agosto de 2016 .
- ^ "Referencia de protocolo AJP - Propuesta de extensión AJPv13" . Apache Tomcat . Consultado el 20 de agosto de 2016 .
- ^ "Propuesta AJPv14" . Apache Tomcat . Consultado el 6 de mayo de 2019 .
enlaces externos
- El conector Apache Tomcat - Referencia de protocolo AJP AJPv13
- Protocolo Apache JServ versión 1.3 Dan Milstein, diciembre de 2000.
- "Conector BonCode" . BonCode . 2016-08-16 . Consultado el 9 de octubre de 2017 . Implementación de BonCode IIS de AJP