De proxyserver fungeert als een tussenliggende server die verzoeken tussen een client en een server afspeelt. De volmachtsserver houdt spoor van alle cliënt-server interactie en output een logboek van de volledige mededeling van TCP. Dit staat u toe om precies te controleren wat aan de hand is, zonder het moeten tot de belangrijkste server toegang hebben.
U kunt hier de proxyserver in uw AEM-installatie vinden:
crx-quickstart/opt/helpers/proxy-2.1.jar
U kunt de volmachtsserver gebruiken om alle cliënt-server interactie, ongeacht het onderliggende communicatie protocol te controleren. U kunt bijvoorbeeld de volgende protocollen controleren:
U kunt bijvoorbeeld de proxyserver plaatsen tussen twee toepassingen die via een TCP/IP-netwerk communiceren. bijvoorbeeld een webbrowser en AEM. Hierdoor kunt u precies controleren wat er gebeurt wanneer u een CQ-pagina aanvraagt.
Start de server op de opdrachtregel:
java -jar proxy-2.1.jar <host> <remoteport> <localport> [options]
Parameters
<host>
Dit is het hostadres van de CRX-instantie waarmee u verbinding wilt maken. Als de instantie zich op uw lokale computer bevindt, is dit localhost
.
<remoteport>
Dit is de gastheerhaven van de doelCRX instantie. De standaardinstelling voor een nieuw geïnstalleerde AEM is bijvoorbeeld 4502
en de standaardinstelling voor een nieuw geïnstalleerde AEM auteur-instantie is 4502
.
<localport>
Dit is de poort op uw lokale computer waarmee u verbinding wilt maken om toegang te krijgen tot de CRX-instantie via de proxy.
Opties
-q
(stille modus)
Schrijft niet de output aan het consolevenster. Gebruik deze optie als u de verbinding niet wilt vertragen of als u de uitvoer naar een bestand wilt vastleggen (zie de optie -logfile).
-b
(binaire modus)
Als u specifieke bytecombinaties in het verkeer zoekt, laat binaire wijze toe. De uitvoer bevat vervolgens de hexadecimale uitvoer en de tekenuitvoer.
-t
(logbestandvermeldingen voor tijdstempel)
Hiermee voegt u een tijdstempel toe aan elk logbestand. Het tijdstempel is in seconden, zodat het mogelijk niet geschikt is voor het controleren van afzonderlijke aanvragen. Gebruik het om van gebeurtenissen de plaats te bepalen die in een specifiek ogenblik voorkwamen als u de volmachtsserver over een langere tijdspanne gebruikt.
-logfile <filename>
(schrijven naar logbestand)
Schrijft het cliënt-server gesprek aan een logboekdossier. Deze parameter werkt ook in de stille modus.
-i <numIndentions>
(inspringing toevoegen)
Elke actieve verbinding springt in voor betere leesbaarheid. De standaardwaarde is 16 niveaus. Deze functie is geïntroduceerd met proxy.jar version 1.16
.
De logboekingangen die door volmacht-2.1.jar worden geproduceerd hebben allen het volgende formaat:
[timestamp (optional)] [Client|Server]-[ConnectionNumber]-[BytePosition] ->[Character Stream]
Een verzoek om een webpagina kan er bijvoorbeeld als volgt uitzien:
C-0-#000000 -> [GET /author/prox.html?CFC_cK=1102938422341 HTTP/1.1 ]
[GET <?>]
Dit is de inhoud van de aanvraag, in het voorbeeld een van de HTTP-headers (url).Wanneer een verbinding sluit, wordt de volgende informatie geregistreerd:
C-6-Finished: 758 bytes (1.0 kb/s)
S-6-Finished: 665 bytes (1.0 kb/s)
Dit toont het aantal bytes dat tussen client ( C
) en server ( S
) op de 6e verbinding en bij de gemiddelde snelheid is overgegaan.
Een voorbeeld van een logbestandsuitvoer
Neem bijvoorbeeld een pagina die op verzoek de volgende code produceert:
Neem bijvoorbeeld een heel eenvoudig HTML-document dat zich bevindt in de repository op
/content/test.html
naast een afbeeldingsbestand op
/content/test.jpg
De inhoud van test.html
is:
<html>
<head>
<title>Test</title>
</head>
<body>
Test<br>
<img src="test.jpg">
</body>
</html>
Ervan uitgaande dat de AEM-instantie op localhost:4502
wordt uitgevoerd, starten we de proxy als volgt:
java -jar proxy.jar localhost 4502 4444 -logfile test.log
De CQ/CRX-instantie kan nu worden benaderd via de proxy op localhost:4444
en alle communicatie via deze poort wordt geregistreerd naar test.log
.
Als we nu de uitvoer van de proxy bekijken, zien we de interactie tussen de browser en de AEM.
Bij het opstarten geeft de proxy de volgende resultaten:
starting proxy for localhost:4502 on port 4444
using logfile: <some-dir>/crx-quickstart/opt/helpers/test.log
Vervolgens opent u een browser en opent u de testpagina:
http://localhost:4444/content/test.html
en we zien dat de browser een GET
verzoek voor de pagina indient:
C-0-#000000 -> [GET /content/test.html HTTP/1.1 ]
C-0-#000033 -> [Host: localhost:4444 ]
C-0-#000055 -> [Connection: keep-alive ]
C-0-#000079 -> [User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11 ]
C-0-#000212 -> [Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 ]
C-0-#000285 -> [Accept-Encoding: gzip,deflate,sdch ]
C-0-#000321 -> [Accept-Language: en-US,en;q=0.8 ]
C-0-#000354 -> [Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 ]
C-0-#000402 -> [Cookie: login-token=179ba6bd-e0a7-4909-a965-e11c7f2bc2fc%3a618bd8a8-fbaf-43c5-827d-c84c62248c5e_22ee860cc9036fee%3acrx.default%3b21148fb0-eb6c]
C-0-#000543 -> [-43c9-a2b9-c8d40618d8ae%3ad87a3d1a-5e9a-4d5a-bab1-0ee60ad6d8df_d0e4ddce0fcd84b6%3acrx.default%3b5cb95227-ea51-47bf-850b-68ad1dfd7297%3af3bbb6]
C-0-#000684 -> [59-7913-4285-8857-832c087bafd5_c484727d3b3665ad%3acrx.default; ys-cq-siteadmin-tree=o%3Awidth%3Dn%253A240%5EselectedPath%3Ds%253A/content ]
C-0-#000824 -> [ ]
De AEM instantie reageert met de inhoud van het bestand test.html
:
S-0-#000000 -> [HTTP/1.1 200 OK ]
S-0-#000017 -> [Connection: Keep-Alive ]
S-0-#000041 -> [Server: Day-Servlet-Engine/4.1.24 ]
S-0-#000077 -> [Content-Type: text/html;charset=utf-8 ]
S-0-#000116 -> [Content-Length: 104 ]
S-0-#000137 -> [Date: Mon, 16 Jul 2012 11:23:38 GMT ]
S-0-#000174 -> [Last-Modified: Mon, 16 Jul 2012 11:19:27 GMT ]
S-0-#000220 -> [ ]
S-0-#000222 -> [<html>]
S-0-#000229 -> [<head>]
S-0-#000236 -> [ <title>Test</title>]
S-0-#000260 -> [</head> ]
S-0-#000269 -> [<body>]
S-0-#000276 -> [ Test<br>]
S-0-#000286 -> [ <img src="test.jpg">]
S-0-#000311 -> [</body>]
S-0-#000319 -> [</html>]
De volgende scenario's illustreren een paar van de doeleinden waarvoor de Server van de Volmacht kan worden gebruikt:
Controleren op cookies en de bijbehorende waarden
In het volgende voorbeeld van een logbestandvermelding worden alle cookies en hun waarden weergegeven die door de client worden verzonden via de zesde verbinding die is geopend sinds de proxy is gestart:
C-6-#000635 -> [Cookie: cq3session=7e39bc51-ac72-3f48-88a9-ed80dbac0693; Show=ShowMode; JSESSIONID=68d78874-cabf-9444-84a4-538d43f5064d ]
Controleren op kopteksten en hun waarden
In het volgende voorbeeld van een logbestandvermelding wordt getoond dat de server in staat is een verbinding te maken waarbij de inhoud in leven blijft en dat de header van de lengte van de inhoud juist is ingesteld:
S-7-#000017 -> [Connection: Keep-Alive ]
...
S-7-#000107 -> [Content-Length: 124 ]
Controleren of Keep-Alive werkt
Levend houden is een eigenschap van HTTP die een cliënt toestaat om de verbinding van TCP aan de server opnieuw te gebruiken om veelvoudige verzoeken (voor de paginacode, beelden, stijlbladen, etc.) te maken. Zonder houden-levend, moet de cliënt een nieuwe verbinding voor elk verzoek vestigen.
Controleren of in leven houden werkt:
Verzoeken om verlies zoeken
Als u aanvragen kwijtraakt in een complexe serverinstelling, bijvoorbeeld met een firewall en een verzender, kunt u de proxyserver gebruiken om te bepalen waar de aanvraag verloren is gegaan. In het geval van een firewall:
Verzoeken wijzigen
Als u van tijd tot tijd hangende verzoeken ervaart: