Proxyservern fungerar som en mellanliggande server som vidarebefordrar begäranden mellan en klient och en server. Proxyservern spårar alla klient-server-interaktioner och genererar en logg över hela TCP-kommunikationen. På så sätt kan du övervaka exakt vad som händer, utan att behöva komma åt huvudservern.
Proxyservern finns i lämplig installationsmapp:
Du kan använda proxyservern för att övervaka all klientserverinteraktion, oavsett vilket kommunikationsprotokoll som ligger till grund för det. Du kan till exempel övervaka följande protokoll:
Du kan till exempel placera proxyservern mellan två program som kommunicerar via ett TCP/IP-nätverk, till exempel en webbläsare och AEM. På så sätt kan du övervaka exakt vad som händer när du begär en AEM.
Verktyget finns i mappen /opt/help i AEM. Börja med att skriva:
java -jar proxy.jar <host> <remoteport> <localport> [options]
Följande scenarier visar några av de syften som proxyserververktyget kan användas för:
Kontrollera om det finns cookies och deras värden
I följande exempel på loggpost visas alla cookies och deras värden som klienten skickade på den sjätte anslutningen som öppnats sedan proxystart:
C-6-#000635 -> [Cookie: cq3session=7e39bc51-ac72-3f48-88a9-ed80dbac0693; Show=ShowMode; JSESSIONID=68d78874-cabf-9444-84a4-538d43f5064d ]
Söker efter rubriker och deras värden I följande exempel på loggpost visas att servern kan skapa en keep-alive-anslutning och att innehållets längdhuvud är korrekt inställt:
S-7-#000017 -> [Connection: Keep-Alive ]
...
S-7-#000107 -> [Content-Length: 124 ]
Kontrollera om Keep-Alive fungerar
Håll dig uppdaterad innebär att en klient återanvänder anslutningen till servern för att överföra flera filer (sidkod, bilder, formatmallar osv.). Utan att hålla kontakten vid liv måste klienten upprätta en ny anslutning för varje begäran.
Så här kontrollerar du om keep-alive-funktionen fungerar:
Söker efter förlorade begäranden
Om du förlorar begäranden i en komplex serverinställning, till exempel med en brandvägg och en Dispatcher, kan du använda proxyservern för att ta reda på var begäran förlorades. Om det finns en brandvägg:
Hängande förfrågningar
Om du ibland får väntande förfrågningar:
Loggposterna som skapas av proxy.jar har följande format:
[timestamp (optional)] [<b>C</b>lient|<b>S</b>erver]-[ConnectionNumber]-[BytePosition] ->[Character Stream]
En begäran om en webbsida kan till exempel se ut så här:
C-0-#000000 -> [GET /author/prox.html?CFC_cK=1102938422341 HTTP/1.1 ]
När en anslutning stängs loggas följande information:
C-6-Finished: 758 bytes (1.0 kb/s)
S-6-Finished: 665 bytes (1.0 kb/s)
Detta visar antalet byte som passerat mellan klient och server på den sjätte anslutningen och med medelhastigheten.
Granska en enkel mall som skapar följande kod när den efterfrågas:
<html>
<head>
<title>Welcome</title>
</head>
<body>
Welcome to Playground<br>
<img src="/logo.gif">
</body>
</html>
Om AEM körs på localhost:4303 startar du proxyservern enligt följande:
java -jar proxy.jar localhost 4303 4444 -logfile test.log
Du kan komma åt servern (localhost:4303
) utan proxyservern, men om du kommer åt den via localhost:4444
loggar proxyservern kommunikationen. Öppna en webbläsare och öppna en sida som skapats med mallen ovan. Titta sedan på loggfilen.
Till och med proxy.jar version 1.14 synkroniseras inte loggposterna för en anslutning, vilket innebär att loggposterna för en klient-/serveranslutning inte behövs i rätt ordningsföljd. De nyare versionerna (>=1.14) av proxyservern har inte det här problemet.
Vid start skrivs följande information till loggen:
starting proxy for localhost:4303 on port 4444
using logfile: C:\CQUnify355default\opt\helpers\test.log
Följande rubrikfält visas i början av den första anslutningen (0) som begär HTML-huvudsidan:
C-0-#000000 -> [GET /author/prox.html?CFC_cK=1102936796533 HTTP/1.1 ]
C-0-#000053 -> [Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, appl]
C-0-#000194 -> [ication/x-shockwave-flash, */* ]
C-0-#000227 -> [Accept-Language: de-ch ]
C-0-#000251 -> [Accept-Encoding: gzip, deflate ]
C-0-#000283 -> [User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) ]
C-0-#000347 -> [Host: localhost:4444 ]
Klienten begär en anslutning som håller sig vid liv så att servern kan skicka flera filer över samma anslutning:
C-0-#000369 -> [Connection: Keep-Alive ]
Proxyservern är ett bra verktyg för att kontrollera om cookies är rätt inställda eller inte. Här ser du följande:
C-0-#000393 -> [Cookie: Show=ShowMode; cq3session=3bce15cf-1575-1b4e-8ea6-0d1a0c64738e; JSESSIONID=4161a56b-f193-d748-88a5-e09c5ff7ef2a ]
C-0-#000514 -> [ ]
S-0-#000000 -> [HTTP/1.0 200 OK ]
Servern stänger anslutningen 0 efter begäran. Det går inte att hålla sig vid liv eftersom begäran har ett frågetecken. Det innebär att servern inte kan returnera en cachelagrad version och därför inte kan fastställa innehållslängden just nu, vilket krävs för en keep-alive-anslutning.
S-0-#000017 -> [Connection: Close ]
S-0-#000036 -> [Server: Communique Servlet Engine/3.5.5 ]
S-0-#000077 -> [Content-Type: text/html;charset=iso-8859-1 ]
S-0-#000121 -> [Date: Tue, 14 Dec 2004 09:46:44 GMT ]
S-0-#000158 -> [Set-Cookie: JSESSIONID=4161a56b-f193-d8-88a5-e09c5ff7ef2a;Path=/author ]
S-0-#000232 -> [ ]
Här börjar servern skicka HTML-koden för anslutning 0:
S-0-#000234 -> [<html> ]
S-0-#000242 -> [.<head> ]
S-0-#000251 -> [..<title>Welcome</title> ]
S-0-#000277 -> [.</head> ]
S-0-#000287 -> [.<body> ]
S-0-#000296 -> [..Welcome to Playground<br> ]
S-0-#000325 -> [..<img src="/author/logo.gif"> ]
S-0-#000357 -> [.</body> ]
S-0-#000367 -> [</html>]
Anslutningen 0 stängs omedelbart efter att HTML-filen har använts:
C-0-Finished: 516 bytes (0.0 kb/s)
S-0-Finished: 374 bytes (0.0 kb/s)
Nu börjar utdata för anslutning 1, som laddar ned bilden som finns i HTML-koden:
C-1-#000000 -> [GET /author/logo.gif HTTP/1.1 ]
C-1-#000031 -> [Accept: */* ]
C-1-#000044 -> [Referer: http://localhost:4444/author/prox.html?CFC_cK=1102936796533 ]
C-1-#000114 -> [Accept-Language: de-ch ]
C-1-#000138 -> [Accept-Encoding: gzip, deflate ]
C-1-#000170 -> [User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) ]
C-1-#000234 -> [Host: localhost:4444 ]
Återigen begär klienten en keep-alive-anslutning:
C-1-#000256 -> [Connection: Keep-Alive ]
C-1-#000280 -> [Cookie: Show=ShowMode; cq3session=3bce15cf-1575-1b4e-8ea6-0d1a0c64738e; JSESSIONID=4161a56b-f193-d748-88a5-e09c5ff7ef2a ]
C-1-#000401 -> [ ]
S-1-#000000 -> [HTTP/1.0 200 OK ]
För anslutning 1 kan servern ge dig"keep-alive" eftersom bilden är statisk och innehållslängden därför är känd.
S-1-#000017 -> [Connection: Keep-Alive ]
S-1-#000041 -> [Server: Communique Servlet Engine/3.5.5 ]
S-1-#000082 -> [Content-Type: image/gif ]
Servern returnerar bildens innehållslängd på anslutning 1:
S-1-#000107 -> [Content-Length: 124 ]
S-1-#000128 -> [Date: Tue, 14 Dec 2004 09:46:44 GMT ]
S-1-#000165 -> [ ]
Nu när innehållslängden är etablerad skickar servern bilddata vid anslutning 1:
S-1-#000167 -> [GIF87a..........................,.......
...I....0.A..8......YDA.W...1..`i.`..6...Z...$@.F..)`..f..A.....iu.........$..;]
När tidsgränsen för keep-alive har nåtts stängs även anslutning 1:
S-1-Finished: 291 bytes (0.0 kb/s)
C-1-Finished: 403 bytes (0.0 kb/s)
Exemplet ovan är relativt enkelt eftersom de två anslutningarna sker sekventiellt:
I praktiken kan en sida generera många parallella förfrågningar för bilder, formatmallar, JavaScript-filer och så vidare. Detta innebär att loggarna har överlappande poster med parallella öppna anslutningar. I så fall rekommenderar Adobe att du använder alternativet -i för att förbättra läsbarheten.