Vejledning til Tomcat Manager-applikation

1. Introduktion

I denne vejledning skal vi se nærmere på Tomcat Manager-applikationen.

I en nøddeskal er Tomcat Manager-appen en webapplikation, der er pakket med Tomcat-serveren og giver os den grundlæggende funktionalitet, vi har brug for til at styre vores implementerede webapplikationer.

Som vi skal se, har applikationen mange funktioner og tjenester. Udover at tillade os at administrere implementerede applikationer, kan vi også se serverens status og konfiguration og dens applikationer.

2. Installation af Tomcat

Før vi går ned i Tomcat Manager-appen, skal vi først installere en Tomcat-server.

Heldigvis er installation af Tomcat en nem proces. Se vores introduktion til Apache Tomcat-vejledning for hjælp til installation af Tomcat. I denne vejledning bruger vi den nyeste Tomcat 9-version.

3. Adgang til Tomcat Manager-appen

Lad os nu se på, hvordan du bruger Tomcat Manager-appen. Vi har to muligheder her - vi kan vælge at bruge den webbaserede (HTML) applikation eller den tekstbaserede webservice.

Den tekstbaserede tjeneste er ideel til scripting, mens HTML-applikationen er designet til mennesker.

Det webbaseret applikation er tilgængelig på:

  • http [s]: //: / manager / html /

Mens det tilsvarende teksttjeneste er tilgængelig på:

  • http [s]: //: / manager / tekst /

Før vi kan få adgang til disse tjenester, skal vi dog konfigurere Tomcat. Som standard er det kun adgang til brugere med de rigtige tilladelser.

Lad os gå videre og tilføje sådanne brugere ved at redigere conf / tomcat-brugere fil:

Som vi kan se, tilføjede vi to nye brugere:

  • tomcatgui - har manager-gui rolle og kan bruge den webbaserede applikation
  • tomcattext - har manager-script rolle og kan bruge den tekstbaserede webservice

I det næste afsnit ser vi, hvordan vi kan bruge disse to brugere til at demonstrere funktionerne i Tomcat Manager-appen.

4. Notering af aktuelt implementerede applikationer

I dette afsnit lærer vi at se en liste over de aktuelt anvendte applikationer.

4.1. Brug af Internettet

Lad os åbne // localhost: 8080 / manager / html / for at se Tomcat Manager App-websiden. Vi er nødt til at godkende som tomcatgui brugeren til at gøre det.

Når du er logget ind, viser websiden alle de implementerede applikationer øverst på siden. For hver applikation kan vi se, om den kører eller ej, kontekststien og antallet af aktive sessioner. Der er også flere knapper, vi kan bruge til at administrere applikationerne:

4.2. Brug af teksttjenesten

Alternativt kan vi liste alle de implementerede applikationer ved hjælp af tekstwebtjenesten. Denne gang laver vi en krølle anmodning ved hjælp af tomcattext bruger at godkende:

curl -u tomcattext: baeldung // localhost: 8080 / manager / text / list

Ligesom websiden viser svaret alle de implementerede applikationer med deres nuværende tilstand og antal aktive sessioner. For eksempel kan vi se Manager applikationen kører og har en aktiv session:

OK - Liste over applikationer til virtuel vært [localhost] /: kører: 0: ROOT / eksempler: kører: 0: eksempler / host-manager: kører: 0: host-manager / manager: kører: 1: manager / docs: kører: 0: docs

5. Administration af applikationer

Et af de vigtigste funktioner i Tomcat Manager-appen giver os mulighed for at stoppe, starte og genindlæse applikationer.

5.1. Brug af Internettet

I tilfælde af webapplikationen er det kun et spørgsmål om at klikke på knapperne på websiden, hvis du stopper og starter applikationerne. Resultatet og eventuelle problemer rapporteres i meddelelsesfeltet øverst på siden.

5.2. Brug af teksttjenesten

På samme måde kan vi stoppe og starte applikationer ved hjælp af teksttjenesten. Lad os stoppe og derefter starte eksempler applikation ved hjælp af en krølle anmodning:

curl -u tomcattext: baeldung // localhost: 8080 / manager / text / stop? path = / eksempler OK - Stoppet applikation ved kontekststi [/ eksempler]
curl -u tomcattext: baeldung // localhost: 8080 / manager / text / start? path = / eksempler OK - Startet applikation i kontekststi [/ eksempler]

Det sti forespørgselsparameter angiver, hvilket program der skal administreres og skal matche programmets kontekststi.

Vi kan også genindlæse applikationer for at hente ændringer til klasser eller ressourcer. Dette fungerer dog kun for applikationer, der pakkes ud i en mappe og ikke implementeres som WAR-filer.

Her er et eksempel på, hvordan vi kan genindlæse dok applikation ved hjælp af teksttjenesten:

curl -u tomcattext: baeldung // localhost: 8080 / manager / text / reload? path = / docs OK - Genindlæst applikation i kontekststi [/ docs]

Husk dog, at vi kun behøver at klikke på genindlæsningsknappen for at opnå det samme i webapplikationen.

6. Udløbne sessioner

Ud over at administrere applikationer kan vi administrere brugersessioner. Tomcat Manager-appen viser detaljer om aktuelle brugersessioner og giver os mulighed for at udløbe sessioner manuelt.

6.1. Via webgrænsefladen

Vi kan se aktuelle brugersessioner ved at følge linket i Sessioner kolonne for alle anførte applikationer.

I eksemplet nedenfor kan vi se, at der er to brugersessioner til Manager Ansøgning. Den viser sessionens varighed, hvor længe den har været inaktiv, og hvor lang tid, indtil den udløber (30 minutter som standard).

Vi kan også manuelt ødelægge sessioner ved at vælge dem og vælge Ugyldig valgte sessioner:

På hjemmesiden er der en knap til Udløb sessioner. Dette ødelægger også sessioner, der har været inaktive i den angivne periode på minutter.

6.2. Via tekstwebtjenesten

Igen er ækvivalenterne for teksttjenester ligetil.

For at se detaljer om aktuelle brugersessioner kalder vi session slutpunkt med kontekststien til den applikation, vi er interesseret i. I dette eksempel kan vi se, at der i øjeblikket er to sessioner til Manager Ansøgning:

curl -u tomcattext: baeldung "// localhost: 8080 / manager / text / sessions? path = / manager" OK - Sessionsoplysninger til applikation i kontekststi [/ manager] Standard maksimalt session inaktivt interval er [30] minutter Inaktivt i [ 2 - <3] minutter: [1] sessioner Inaktive i [13 - <14] minutter: [1] sessioner

Hvis vi ønsker at ødelægge inaktive brugersessioner, så bruger vi udløbe slutpunkt. I dette eksempel udløber vi sessioner, der har været inaktive i mere end 10 minutter for Manager Ansøgning:

curl -u tomcattext: baeldung "// localhost: 8080 / manager / text / expire? path = / manager & idle = 10" OK - Sessionsoplysninger til applikation i kontekststi [/ manager] Standard maksimum session inaktivt interval er [30] minutter Inaktiv i [5 - <6] minutter: [1] sessioner Inaktive i [15 - 10] minutter: [1] sessioner var udløbet

7. Implementering af applikationer

Nu hvor vi har set, hvordan vi kan administrere vores applikationer, lad os se, hvordan vi kan implementere nye applikationer.

For at komme i gang skal du downloade Tomcat-eksemplet WAR, så vi har en ny applikation, der skal implementeres.

7.1. Brug af Internettet

Nu har vi et par muligheder for at implementere vores nye prøve WAR ved hjælp af websiden. Den nemmeste metode er at uploade prøve WAR-filen og implementere den:

WAR implementeres med en kontekststi, der matcher navnet på WAR. Hvis det lykkes, implementeres prøveprogrammet, startes og vises på listen over applikationer. Hvis vi følger /prøve link i kontekststien, kan vi se vores kørende eksempelapplikation:

For at vi kan implementere den samme applikation igen, lad os klikke på Undeploy knap. Som navnet antyder, vil dette afinstallere applikationen. Bemærk, at dette også sletter alle filer og mapper til den implementerede applikation.

Dernæst kan vi implementere WAR-eksemplarfilen ved at angive filstien. Vi specificerer filstien URI til WAR-filen eller den udpakkede mappe plus kontekststien. I vores tilfælde er prøven WAR i / tmp katalog, og vi indstiller kontekststien til /prøve:

Alternativt kan vi specificere filsti til en XML-implementeringsbeskrivelse. Denne tilgang giver os mulighed for at specificere yderligere attributter, der påvirker, hvordan applikationen implementeres og køres. I eksemplet nedenfor implementerer vi eksemplet på WAR-applikationen og gør det genindlæsbart.

Noter det enhver sti, der er angivet i installationsbeskrivelsen, ignoreres. Kontekststien er taget fra filnavnet på installationsbeskrivelsen. Se på de almindelige attributter for at forstå hvorfor samt en beskrivelse af alle de andre mulige attributter:

7.2. Brug af teksttjenesten

Lad os nu se på implementering af applikationer ved hjælp af teksttjenesten.

Lad os først afinstallere vores prøveapplikation:

curl -u tomcattext: baeldung "// localhost: 8080 / manager / text / undeploy? path = / sample" OK - Uudplaceret applikation i kontekststi [/ sample]

Til indsæt det igen, specificerer vi kontekststien og placerings-URI for WAR-fileksemplet:

curl -u tomcattext: baeldung "//localhost:8080/manager/text/deploy?path=/sample&war=file:/tmp/sample.war" OK - Implementeret applikation i kontekststi [/ sample]

Desuden kan vi også implementere en applikation ved hjælp af XML-implementeringsbeskrivelsen:

krølle -u tomcattext: baeldung "//localhost:8080/manager/text/deploy?config=file:/tmp/sample.xml" OK - Implementeret applikation ved kontekststi [/ sample]

8. Visning af SSL-konfiguration

Vi er nødt til aktiver SSL i Tomcat inden vi kan se nogen SSL-konfiguration. Lad os først oprette et nyt certifikat Keystore med et selvsigneret certifikat i vores Tomcat konf vejviser:

keytool -genkey -alias tomcat -keyalg RSA -keystore conf / localhost-rsa.jks 

Dernæst ændrer vi conf / tomcat-server.xml fil for at aktivere SSL-stikket i Tomcat:

Når vi genstarter Tomcat, finder vi, at den kører sikkert på port 8443!

8.1. Brug af internettet

Lad os åbne // localhost: 8443 / manager / html for at se Tomcat Manager-appen igen. Det skal se nøjagtigt det samme ud.

Vi kan nu se vores SSL-konfiguration ved hjælp af knapperne under Diagnostik:

  • Det Koder -knappen viser alle SSL-chifre, der forstås af Tomcat
  • Dernæst Certifikater knappen viser detaljer om vores selvsignerede certifikat
  • Endelig blev Pålidelige certifikater knappen viser pålidelige CA-certifikatoplysninger; i vores eksempel viser det ikke noget af interesse, da vi ikke har tilføjet nogen pålidelige CA-certifikater

SSL-konfigurationsfilerne kan også når som helst dynamisk genindlæses. Vi kan genindlæse pr. Virtuel vært ved at indtaste værtsnavnet. Ellers læses al konfiguration igen:

8.2. Brug af teksttjenesten

På samme måde kan vi få de samme oplysninger ved hjælp af teksttjenesten. Vi kan se alle:

  • SSL-cifre ved hjælp af sslConnectorCiphers ressource:
curl -ku tomcattext: baeldung "// localhost: 8443 / manager / text / sslConnectorCiphers"
  • Certifikater ved hjælp af sslConnectorCerts ressource:
curl -ku tomcattext: baeldung "// localhost: 8443 / manager / text / sslConnectorCerts"
  • Pålidelige certifikater ved hjælp af sslConnectorTrustedCerts ressource:
curl -ku tomcattext: baeldung "// localhost: 8443 / manager / text / sslConnectorTrustedCerts"

SSL konfiguration kan genindlæses ved brug af:

curl -ku tomcattext: baeldung "// localhost: 8443 / manager / text / sslReload" OK - Genindlæst TLS-konfiguration til alle TLS virtuelle værter 

Bemærk -k indstilling i krølle kommando, da vi bruger et selvsigneret certifikat.

9. Visning af serverstatus

Tomcat Manager-appen viser os også serverens status og de implementerede applikationer. Disse sider er særligt praktiske, når vi vil se den samlede brugsstatistik.

Hvis vi følger Serverstatus link, der vises øverst til højre, ser vi detaljer på serveren. Det Komplet serverstatus linket viser yderligere oplysninger om applikationerne:

Der er ingen tilsvarende teksttjeneste. Vi kan dog ændre Serverstatus link for at se serverstatus i XML. Desværre gør det samme for Komplet serverstatus link fungerer muligvis eller ikke, afhængigt af hvilken Tomcat-version vi bruger.

10. Gemme konfiguration

Teksttjenesten giver os mulighed for at gemme den aktuelle konfiguration til Tomcat conf / server.xml. Dette er meget nyttigt, hvis vi har ændret konfigurationen og vil gemme den til senere brug.

Heldigvis sikkerhedskopierer dette også det forrige conf / server.xml, selvom eventuelle tidligere kommentarer kan fjernes i den nye conf / server.xml konfigurationsfil.

Før vi kan gøre dette, skal vi dog tilføje en ny lytter. Rediger conf / server.xml og tilføj følgende til slutningen af ​​listen over de eksisterende lyttere:

Når vi har genstartet Tomcat, kan vi gemme vores konfiguration ved hjælp af:

curl -u tomcattext: baeldung "// localhost: 8080 / manager / text / save" OK - Serverkonfiguration gemt

11. Diagnostik

Lad os endelig se på yderligere diagnostiske funktioner leveret af Tomcat Manager-appen.

11.1. Tråddump

Vi kan bruge teksttjenesten til at få en thread dump af den kørende Tomcat-server:

curl -u tomcattext: baeldung "// localhost: 8080 / manager / text / threaddump" OK - JVM thread dump 06-10-2019 23: 19: 10.066 Fuld thread dump Java HotSpot (TM) 64-bit Server VM (11.0. 3 + 12-LTS blandet tilstand): ...

Dette er især nyttigt, når vi skal analysere eller finde tråde, der forårsager ydeevneproblemer, såsom langvarige eller låste tråde.

11.2. Finde hukommelseslækager

Tomcat gør generelt et godt stykke arbejde med at forhindre hukommelseslækage. Men når vi har mistanke om en hukommelseslækage, har Tomcat Manager-appen en hukommelseslækagedetekteringstjeneste, der kan hjælpe os. Den udfører en fuld affaldssamling og registrerer de klasser, der stadig er bosiddende i hukommelsen siden sidste gang applikationen blev genindlæst.

Vi behøver kun at køre Find utætheder på websiden for at opdage lækager.

Tilsvarende kan teksttjenesten køre detektion af hukommelseslækage:

curl -u tomcattext: baeldung "// localhost: 8080 / manager / text / findleaks? statusLine = true" OK - Ingen hukommelseslækage fundet

11.3. Visning af tilgængelige ressourcer

Teksttjenesten giver en liste over tilgængelige ressourcer. I dette eksempel ser vi, at vi har en tilgængelig hukommelsesdatabase:

curl -u tomcattext: baeldung "// localhost: 8080 / manager / text / resources" OK - Liste over globale ressourcer af alle typer UserDatabase: org.apache.catalina.users.MemoryUserDatabase

12. Konklusion

I denne artikel har vi taget et detaljeret kig på Tomcat Manager-appen. Vi startede med at installere applikationen og se, hvordan man giver adgang ved at konfigurere tilladelser til to forskellige brugere.

Derefter udforskede vi flere eksempler ved hjælp af den webbaserede applikation og den tekstbaserede webservice. Vi så, hvordan vi kunne se, administrere og implementere applikationer ved hjælp af en række forskellige metoder. Så kiggede vi på, hvordan vi ser serverens konfiguration og status.

For at lære mere om Tomcat Manager-appen, se online-dokumentationen.