Apache JServ Protocol

Das Apache JServ Protocol (AJP) ist ein Binärprotokoll das kann Proxy eingehende Anfragen von a Webserver durch Anwendungsserver Das befindet sich hinter dem Webserver. AJP ist ein sehr vertrauenswürdiges Protokoll und sollte niemals nicht vertrauenswürdige Clients ausgesetzt sein, die es verwenden könnten, um Zugriff auf vertrauliche Informationen zu erhalten oder Code auf dem Anwendungsserver auszuführen.[1]

Es unterstützt auch eine Überwachung, da der Webserver kann Klingeln der Anwendungsserver. Webimplemente verwenden normalerweise AJP in a ladenbalanciert Bereitstellung, bei dem ein oder mehrere Front-End-Webserver Anforderungen in einen oder mehrere Anwendungsserver einspeisen. Die Sitzungen werden unter Verwendung eines Routing -Mechanismus auf den richtigen Anwendungsserver umgeleitet, bei dem jede Anwendungsserverinstanz einen Namen erhält (als a genannt Route). In diesem Szenario funktioniert der Webserver als Reverse Proxy[2] Für den Anwendungsserver. Zuletzt unterstützt AJP Anforderungsattribute, die, wenn sie mit umgebungsspezifischen Einstellungen im Reverse Proxy besiedelt sind, eine sichere Kommunikation zwischen dem Reverse-Proxy und dem Anwendungsserver bietet.[3][4]

AJP läuft herein Apache HTTP Server 1.x mit dem mod_jk Plugin und in Apache 2.x verwenden mod_proxy_ajp, mod_proxy und Proxy Balancer -Module zusammen. Andere Webserver -Implementierungen existieren für: LightTpd 1.4.59,[5] nginx,[6] Grizzly 2.1,[7] und die Internetinformationsdienste.[2]

Webcontainer Anwendungsserver, die AJP unterstützen, umfassen: Apache tomcat, Wildfliege (früher Jboss als) und Glasfische.

Geschichte

Alexei Kosut hat ursprünglich das Apache JServ -Protokoll im Juli 1997 entwickelt[8] Die Spezifikation von Version 1.0 wurde jedoch später am 29. Juli 1998 veröffentlicht.[9] Er schrieb auch die ersten Implementierungen davon im selben Monat mit den Veröffentlichungen des Apache JServ Servlet Engine 0.9 und des Apache Mod_JServ 0.9a (veröffentlicht am 30. Juli 1997).[10]

Die Spezifikation wurde am 9. September 1998 auf Version 1.1 aktualisiert.[11] Ebenfalls 1998 wurde ein überarbeitetes Protokoll in Spezifikationsversionen 2 erstellt und veröffentlicht[12] und 2.1,[8] Allerdings wurde es nie adoptiert.

Im Jahr 1999, Sun Microsystems spendete sein Javaserver Web Development Kit (JSWDK; Codenamed Tomcat) Referenzimplementierung an Apache Software Foundation. Das wurde Apache tomcat Version 3.0, der Nachfolger von JSWDK 2.1 und entgleist die Weiterentwicklung von Apache JSERV Servlet Engine und AJP zur Unterstützung von Java Servlet API Version 2.1.[13]

Die aktuelle Spezifikation bleibt bei Version 1.3,[14] Es gibt jedoch einen veröffentlichten Verlängerungsvorschlag[15] sowie ein archivierter experimenteller 1.4 -Vorschlag.[16]

Siehe auch

Verweise

  1. ^ "AJP-Datei Read/Inclusion in Apache Tomcat (CVE-2020-1938) und Undertow (CVE-2020-1745)". Red Hat -Kundenportal. Abgerufen 1. März 2020.
  2. ^ a b "Boncode Apache Tomcat AJP 1.3 Connector". Boncode.net. Abgerufen 9. Oktober 2017.
  3. ^ "NativeSpattributeAccess". Shibboleth Consortium. Abgerufen 13. November 2017.
  4. ^ "Apache Modul mod_proxy_ajp". Apache HTTP Server -Projekt. Abgerufen 13. November 2017.
  5. ^ "Docs - LightTPD - Lighty Labs". Redmine.Lighttpd.net. Abgerufen 14. Juli 2021.
  6. ^ Yao (姚伟斌), Weibin (6. Oktober 2017). "nginx_ajp_module: Unterstützen Sie AJP -Protokoll -Proxy mit nginx". Abgerufen 9. Oktober 2017 - über Github.
  7. ^ "AJP". Grizzly 2.3 Benutzerhandbuch. Java.net. Abgerufen 2013-04-29.
  8. ^ a b Barbieri, Federico; Fumagalli, Pierpaolo; Kluft, Ian; Korthof, ed; Mazzocchi, Stefano; Pool, Martin (30. Juni 1998). "Apache JServ Protocol Version 2.1". Java Apache -Projekt. Archiviert von das Original am 2003-08-04.
  9. ^ Kosut, Alexei (29. Juli 1998). "Apache JServ Protocol Version 1.0". Java Apache -Projekt. Archiviert von das Original am 2003-04-15.
  10. ^ "Geschichte der Veränderungen - Apache JSERV -Projekt". Java Apache -Projekt. Archiviert von das Original am 2003-04-16.
  11. ^ Kosut, Alexei (9. September 1998). "Apache JServ Protocol Version 1.1". Java Apache -Projekt. Archiviert von das Original am 2003-08-04.
  12. ^ Kluft, Ian; Korthof, ed; Mazzocchi, Stefano (15. Februar 1998). "Apache JServ Protocol Version 2". Java Apache -Projekt. Archiviert von das Original am 2003-08-05.
  13. ^ "Die Ursprungsgeschichte von Tomcat". Technotif. Abgerufen 2018-07-25.
  14. ^ "AJP -Protokollreferenz - AJPv13". Apache tomcat. Abgerufen 2016-08-20.
  15. ^ "AJP -Protokollreferenz - AJPV13 -Erweiterungsvorschlag". Apache tomcat. Abgerufen 2016-08-20.
  16. ^ "AJPV14 Vorschlag". Apache tomcat. Abgerufen 2019-05-06.

Externe Links