Vodič kroz aplikaciju Tomcat Manager

1. Uvod

U ovom uputstvu detaljno ćemo pogledati aplikaciju Tomcat Manager.

Ukratko, aplikacija Tomcat Manager je web aplikacija koja je u paketu s Tomcat poslužiteljem i pruža nam osnovnu funkcionalnost koja nam je potrebna za upravljanje našim instaliranim web aplikacijama.

Kao što ćemo vidjeti, aplikacija ima brojne značajke i usluge. Osim što nam omogućava upravljanje razmještenim aplikacijama, možemo vidjeti i status i konfiguraciju poslužitelja i njegovih aplikacija.

2. Instaliranje Tomcata

Prije nego što uđemo u aplikaciju Tomcat Manager, prvo moramo instalirati Tomcat poslužitelj.

Srećom, instalacija Tomcata jednostavan je postupak. Molimo pogledajte naš vodič za Uvod u Apache Tomcat za pomoć pri instaliranju Tomcata. U ovom uputstvu koristit ćemo najnoviju verziju Tomcat 9.

3. Pristup aplikaciji Tomcat Manager

Pogledajmo sada kako se koristi aplikacija Tomcat Manager. Ovdje imamo dvije mogućnosti - možemo odabrati upotrebu internetske (HTML) aplikacije ili tekstualne web usluge.

Tekstualna usluga idealna je za skriptiranje, dok je HTML aplikacija namijenjena ljudima.

The internetska aplikacija dostupna je na:

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

Dok odgovarajući tekstualna usluga dostupna je na:

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

Međutim, prije nego što pristupimo tim uslugama, moramo konfigurirati Tomcat. Prema zadanim postavkama, mogu mu pristupiti samo korisnici s ispravnim dopuštenjima.

Idemo naprijed i dodajte takve korisnike uređivanjem conf / tomcat-korisnici datoteka:

Kao što vidimo, dodali smo dva nova korisnika:

  • tomcatgui - ima upravitelj-gui ulogu i može koristiti internetsku aplikaciju
  • tomcattext - ima upravitelj-skripta ulogu i može koristiti web-uslugu zasnovanu na tekstu

U sljedećem ćemo odjeljku vidjeti kako možemo koristiti ova dva korisnika za demonstraciju mogućnosti aplikacije Tomcat Manager.

4. Popis trenutno postavljenih aplikacija

U ovom ćemo odjeljku naučiti kako vidjeti popis trenutno postavljenih aplikacija.

4.1. Korištenje weba

Otvorimo // localhost: 8080 / manager / html / za prikaz web stranice Tomcat Manager App. Moramo se potvrditi kao tomcatgui korisnik da to učini.

Jednom prijavljena, web stranica prikazuje sve postavljene aplikacije na vrhu stranice. Za svaku aplikaciju možemo vidjeti radi li se ili ne, put konteksta i broj aktivnih sesija. Postoji i nekoliko gumba kojima možemo upravljati aplikacijama:

4.2. Korištenje usluge Text

Alternativno, možemo navesti sve postavljene aplikacije pomoću tekstualne web usluge. Ovaj put izrađujemo kovrča zahtjev pomoću tomcattext korisnika za autentifikaciju:

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

Baš kao i web stranica, odgovor prikazuje sve postavljene aplikacije s njihovim trenutnim stanjem i brojem aktivnih sesija. Na primjer, možemo vidjeti menadžer aplikacija je pokrenuta i ima jednu aktivnu sesiju:

U redu - Navedene aplikacije za virtualni host [localhost] /: pokrenut: 0: ROOT / primjeri: pokrenut: 0: primjeri / host-manager: pokrenut: 0: host-manager / manager: pokrenut: 1: upravitelj / dokumenti: pokrenut: 0: dokumenti

5. Upravljanje aplikacijama

Jedan od ključnih dijelova funkcionalnosti koji nam omogućuje aplikacija Tomcat Manager je zaustavljanje, pokretanje i ponovno učitavanje aplikacija.

5.1. Korištenje weba

U slučaju web aplikacije, zaustavljanje i pokretanje aplikacija samo je pitanje klikom na gumbe na web stranici. Ishod i svi problemi prijavljeni su u polju za poruke na vrhu stranice.

5.2. Korištenje usluge Text

Isto tako, možemo zaustaviti i pokrenuti programe pomoću tekstualne usluge. Zaustavimo se, a zatim pokrenimo primjeri aplikacija pomoću a kovrča zahtjev:

curl -u tomcattext: baeldung // localhost: 8080 / manager / text / stop? path = / examples OK - Zaustavljena aplikacija na stazi konteksta [/ examples]
curl -u tomcattext: baeldung // localhost: 8080 / manager / text / start? path = / examples OK - pokrenuta aplikacija na stazi konteksta [/ examples]

The staza parametar upita označava kojom aplikacijom treba upravljati i mora odgovarati kontekstualnoj putanji aplikacije.

Također možemo ponovno učitati aplikacije kako bismo pokupili promjene u klasama ili resursima. Međutim, ovo radi samo za programe koji su raspakirani u direktorij i nisu raspoređeni kao WAR datoteke.

Evo primjera kako možemo ponovno učitati dokumenti aplikacija koja koristi tekstualnu uslugu:

curl -u tomcattext: baeldung // localhost: 8080 / manager / text / reload? path = / docs OK - Ponovno učitana aplikacija na kontekstnoj stazi [/ docs]

Imajte na umu da trebamo samo kliknuti gumb za ponovno učitavanje da bismo to postigli u web aplikaciji.

6. Sesije koje ističu

Osim upravljanja aplikacijama, možemo upravljati korisničkim sesijama. Aplikacija Tomcat Manager prikazuje detalje o trenutnim korisničkim sesijama i omogućuje nam ručno istek sesija.

6.1. Putem web sučelja

Trenutačne sesije korisnika možemo pregledati slijedeći vezu u Sjednice stupac za sve navedene prijave.

U donjem primjeru možemo vidjeti da postoje dvije korisničke sesije za menadžer primjena. Prikazuje trajanje sesije, koliko je dugo bila neaktivna i koliko dugo traje (30 minuta prema zadanim postavkama).

Također možemo ručno uništavati sesije odabirom i odabirom Poništi odabrane sesije:

Na početnoj stranici nalazi se gumb za Istječu sesije. Ovo također uništava sesije koje su neaktivne tijekom određenog minuta.

6.2. Putem usluge Text Web

Opet, ekvivalenti tekstualnih usluga jednostavni su.

Da bismo pogledali detalje o trenutnim korisničkim sesijama, nazivamo sjednica krajnja točka s kontekstualnom stazom aplikacije koja nas zanima. U ovom primjeru možemo vidjeti da trenutno postoje dvije sesije za menadžer primjena:

curl -u tomcattext: baeldung "// localhost: 8080 / manager / text / session? path = / manager" U redu - Informacije o sesiji za aplikaciju na kontekst stazi [/ manager] Zadani maksimalni interval neaktivnosti sesije je [30] minuta Neaktivan za [ 2 - <3] minute: [1] sesija Neaktivno za [13 - <14] minuta: [1] sesija

Ako želimo uništiti neaktivne korisničke sesije, tada koristimo isteći krajnja točka. U ovom primjeru ističemo sesije koje su bile neaktivne više od 10 minuta za menadžer primjena:

curl -u tomcattext: baeldung "// localhost: 8080 / manager / text / expire? path = / manager & idle = 10" OK - Informacije o sesiji za aplikaciju na kontekst stazi [/ manager] Zadani maksimalni interval neaktivnosti sesije je [30] minuta Neaktivan za [5 - <6] minuta: [1] sesija Neaktivno za [15 - 10] minuta: [1] sesija je istekla

7. Postavljanje aplikacija

Sad kad smo vidjeli kako možemo upravljati svojim aplikacijama, pogledajmo kako možemo primijeniti nove aplikacije.

Da biste započeli, preuzmite Tomcat-ov uzorak WAR-a kako bismo imali novu aplikaciju za implementaciju.

7.1. Korištenje weba

Sada imamo nekoliko mogućnosti za postavljanje našeg novog uzorka WAR-a pomoću web stranice. Najlakša metoda je prenesite uzorak WAR datoteke i rasporedite je:

RAT je postavljen s put konteksta koji odgovara nazivu RATA. Ako je uspješno, uzorak aplikacije se postavlja, pokreće i prikazuje na popisu aplikacija. Ako slijedimo /uzorak vezu u stazi konteksta, možemo pogledati našu pokrenutu primjeru aplikacije:

Da bismo opet mogli rasporediti istu aplikaciju, kliknite na Nezaposleno dugme. Kao što i samo ime govori, ovo će odvojiti prijavu. Imajte na umu da ovo također briše sve datoteke i direktorije za postavljenu aplikaciju.

Dalje, možemo rasporedite uzorak WAR datoteke određivanjem putanje datoteke. Određujemo URI puta datoteke do WAR datoteke ili neraspakiranog direktorija plus kontekst put. U našem slučaju, uzorak RATA nalazi se u / tmp direktoriju, a mi postavljamo put konteksta do /uzorak:

Alternativno, možemo odrediti put datoteke do deskriptora XML implementacije. Ovaj pristup omogućuje nam da odredimo dodatne atribute koji utječu na način na koji se aplikacija postavlja i pokreće. U primjeru u nastavku primjenjujemo primjerak WAR aplikacije i činimo ga ponovnim za učitavanje.

Imajte na umu da bilo koji put naveden u opisu implementacije se zanemaruje. Staza konteksta preuzeta je iz naziva datoteke deskriptora implementacije. Pogledajte uobičajene atribute da biste razumjeli zašto, kao i opis svih ostalih mogućih atributa:

7.2. Korištenje usluge Text

Pogledajmo sada postavljanje aplikacija pomoću tekstualne usluge.

Prvo, krenimo odvojite naš uzorak prijave:

curl -u tomcattext: baeldung "// localhost: 8080 / manager / text / undeploy? path = / sample" OK - Neraspoređena aplikacija na stazi konteksta [/ sample]

Do ponovno ga rasporedite, specificiramo put konteksta i URI lokacije uzorka WAR datoteke:

curl -u tomcattext: baeldung "//localhost:8080/manager/text/deploy?path=/sample&war=file:/tmp/sample.war" U redu - postavljena aplikacija na stazi konteksta [/ sample]

Nadalje, također možemo implementirati aplikaciju pomoću XML deskriptora implementacije:

curl -u tomcattext: baeldung "//localhost:8080/manager/text/deploy?config=file:/tmp/sample.xml" U redu - postavljena aplikacija na stazi konteksta [/ sample]

8. Pregled SSL konfiguracije

Moramo omogućiti SSL u Tomcat prije nego što uspijemo vidjeti bilo kakvu SSL konfiguraciju. Prvo stvorimo novu pohranu ključeva certifikata sa samopotpisanim certifikatom u našem Tomcat-u konf imenik:

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

Dalje, mijenjamo conf / tomcat-server.xml datoteka za omogućavanje SSL konektora u Tomcat:

Nakon što ponovno pokrenemo Tomcat, otkrit ćemo da sigurno radi na portu 8443!

8.1. Korištenje weba

Otvorimo // localhost: 8443 / manager / html da bismo ponovno vidjeli aplikaciju Tomcat Manager. Trebao bi izgledati potpuno isto.

Sada možemo vidjeti našu SSL konfiguraciju pomoću gumba ispod Dijagnostika:

  • The Šifre gumb prikazuje sve SSL šifre koje je Tomcat razumio
  • Dalje, Potvrde gumb prikazuje detalje o našem samopotpisanom certifikatu
  • Napokon, Pouzdani certifikati gumb prikazuje pouzdane detalje CA certifikata; u našem primjeru ne prikazuje ništa zanimljivo jer nismo dodali pouzdane CA certifikate

Također, SSL konfiguracijske datoteke mogu se dinamički ponovno učitati u bilo kojem trenutku. Po ponovnom učitavanju po virtualnom hostu možemo unijeti ime hosta. Inače, sva konfiguracija se ponovno čita:

8.2. Korištenje usluge Text

Isto tako, iste podatke možemo dobiti pomoću tekstualne usluge. Možemo vidjeti sve:

  • SSL šifre pomoću sslConnectorCiphers resurs:
curl -ku tomcattext: baeldung "// localhost: 8443 / manager / text / sslConnectorCiphers"
  • Certifikati koji koriste sslConnectorCerts resurs:
curl -ku tomcattext: baeldung "// localhost: 8443 / manager / text / sslConnectorCerts"
  • Pouzdani certifikati koji koriste sslConnectorTrustedCerts resurs:
curl -ku tomcattext: baeldung "// localhost: 8443 / manager / text / sslConnectorTrustedCerts"

SSL konfiguracija se može ponovno učitati koristeći:

curl -ku tomcattext: baeldung "// localhost: 8443 / manager / text / sslReload" U redu - ponovo učitana TLS konfiguracija za sve TLS virtualne hostove 

Napomena -k opcija u kovrča naredba jer koristimo samopotpisanu potvrdu.

9. Pregled statusa poslužitelja

Aplikacija Tomcat Manager također nam pokazuje status poslužitelja i postavljenih aplikacija. Te su stranice posebno korisne kada želimo pregledati ukupnu statistiku upotrebe.

Ako slijedimo Status poslužitelja vezu, prikazanu u gornjem desnom dijelu, detalje vidimo na poslužitelju. The Kompletan status poslužitelja link prikazuje dodatne detalje o aplikacijama:

Ne postoji odgovarajuća usluga za tekst. Međutim, možemo izmijeniti Status poslužitelja veza za prikaz statusa poslužitelja u XML-u. Nažalost, radeći isto za Kompletan status poslužitelja veza može ili ne mora raditi, ovisno o tome koju verziju Tomcata koristimo.

10. Spremanje konfiguracije

Tekstualna usluga omogućuje nam spremanje trenutne konfiguracije u Tomcat conf / server.xml. Ovo je vrlo korisno ako smo promijenili konfiguraciju i želimo je spremiti za kasniju upotrebu.

Srećom, ovo također podupire prethodno conf / server.xml, iako se svi novi komentari mogu ukloniti u novom conf / server.xml konfiguracijska datoteka.

Međutim, prije nego što to učinimo, moramo dodati novog slušatelja. Uredite conf / server.xml i dodajte sljedeće na kraj popisa postojećih slušatelja:

Nakon što ponovno pokrenemo Tomcat, svoju konfiguraciju možemo spremiti pomoću:

curl -u tomcattext: baeldung "// localhost: 8080 / manager / text / save" U redu - konfiguracija poslužitelja spremljena

11. Dijagnostika

Na kraju, pogledajmo dodatne dijagnostičke značajke koje pruža aplikacija Tomcat Manager.

11.1. Izbacivanje niti

Tekstnu uslugu možemo koristiti za dobivanje a dump niti pokrenutog Tomcat poslužitelja:

curl -u tomcattext: baeldung "// localhost: 8080 / manager / text / threaddump" OK - JVM dump niti 2019-10-06 23: 19: 10.066 Dump cijelog niti Java HotSpot (TM) 64-bitni poslužitelj VM (11.0. 3 + 12-LTS mješoviti način): ...

To je osobito korisno kada trebamo analizirati ili pronaći niti koje uzrokuju probleme s izvedbom, poput dugotrajnih niti mrtvih blokova.

11.2. Pronalaženje curenja memorije

Tomcat uglavnom dobro sprječava curenje memorije. No kad sumnjamo na curenje memorije, aplikacija Tomcat Manager ima uslugu otkrivanja curenja memorije koja nam pomaže. Izvodi potpuno prikupljanje smeća i otkriva sve klase koje se još uvijek nalaze u memoriji od zadnjeg učitavanja aplikacije.

Moramo samo pokrenuti Pronađi curenje gumb na web stranici za otkrivanje curenja.

Slično tome, tekstualna usluga može pokrenuti otkrivanje curenja memorije:

curl -u tomcattext: baeldung "// localhost: 8080 / manager / text / findleaks? statusLine = true" OK - Nisu pronađena curenja memorije

11.3. Prikazivanje dostupnih resursa

Tekstualna usluga pruža popis dostupnih resursa. U ovom primjeru vidimo da imamo na raspolaganju jednu bazu podataka u memoriji:

curl -u tomcattext: baeldung "// localhost: 8080 / manager / text / resources" U redu - Navedeni globalni resursi svih vrsta UserDatabase: org.apache.catalina.users.MemoryUserDatabase

12. Zaključak

U ovom smo članku detaljno pogledali aplikaciju Tomcat Manager. Počeli smo s instaliranjem aplikacije i viđenjem kako dati pristup konfiguriranjem dozvola za dva različita korisnika.

Zatim smo istražili nekoliko primjera pomoću web-aplikacije i tekstualne web-usluge. Vidjeli smo kako možemo pregledavati, upravljati i primjenjivati ​​aplikacije pomoću različitih metoda. Zatim smo pogledali kako pregledati konfiguraciju i status poslužitelja.

Da biste saznali više o aplikaciji Tomcat Manager, pogledajte mrežnu dokumentaciju.