Tento tutoriál popisuje, jak nainstalovat a nakonfigurovat Tomcat 9 na Ubuntu 20.04.
Apache Tomcat je webový server s otevřeným zdrojovým kódem a kontejner servletů Java. Je to jedna z nejoblíbenějších možností pro vytváření webových stránek a aplikací založených na Javě. Tomcat je lehký, snadno se používá a má robustní ekosystém doplňků.
Instalace Java #
Tomcat 9 vyžaduje, aby byla v systému nainstalována Java SE 8 nebo novější. Nainstalujeme OpenJDK 11, open-source implementaci platformy Java.
Spusťte následující příkazy jako root nebo uživatel s právy sudo nebo root pro aktualizaci indexu balíčků a instalaci balíčku OpenJDK 11 JDK:
sudo apt update
sudo apt install openjdk-11-jdk
Jakmile je instalace dokončena, ověřte ji kontrolou verze Java:
java -version
Výstup by měl vypadat nějak takto:
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)
Vytvoření systémového uživatele #
Spuštění Tomcatu pod uživatelem root představuje bezpečnostní riziko. Vytvoříme novou systémovou skupinu uživatelů a uživatelů s domovským adresářem /opt/tomcat
který bude provozovat službu Tomcat. Chcete-li tak učinit, zadejte následující příkaz:
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Stahování Tomcat #
Binární distribuce Tomcat je k dispozici ke stažení ze stránky pro stahování Tomcat.
V době psaní tohoto článku je nejnovější verze Tomcatu 9.0.35
. Než budete pokračovat dalším krokem, podívejte se na stránku stahování Tomcat 9, abyste zjistili, zda není k dispozici novější verze.
Použijte wget
ke stažení souboru zip Tomcat do /tmp
adresář:
VERSION=9.0.35
wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz -P /tmp
Po dokončení stahování rozbalte soubor tar do /opt/tomcat
adresář::
sudo tar -xf /tmp/apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat/
Tomcat je pravidelně aktualizován pomocí bezpečnostních záplat a nových funkcí. Abychom měli větší kontrolu nad verzemi a aktualizacemi, vytvoříme symbolický odkaz s názvem latest
, který ukazuje na instalační adresář Tomcat:
sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest
Později, při upgradu Tomcatu, rozbalte novější verzi a změňte symbolický odkaz tak, aby na něj ukazoval.
Systémový uživatel, který byl dříve vytvořen, musí mít přístup k instalačnímu adresáři tomcat. Změňte vlastnictví adresáře na kocour uživatele a skupiny:
sudo chown -R tomcat: /opt/tomcat
Shell skripty uvnitř bin
Tomcatu adresář musí být spustitelný:
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
Tyto skripty se používají ke spuštění, zastavení a jinak ke správě instance Tomcat.
Vytváření souboru jednotky SystemD #
Namísto použití skriptů prostředí ke spouštění a zastavování serveru Tomcat jej nastavíme tak, aby se spouštěl jako služba.
Otevřete textový editor a vytvořte tomcat.service
soubor jednotky v /etc/systemd/system/
adresář:
sudo nano /etc/systemd/system/tomcat.service
Vložte následující konfiguraci:
/etc/systemd/system/tomcat.service[Unit]
Description=Tomcat 9 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true"
Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
Upravte JAVA_HOME
proměnná, pokud je cesta k vaší instalaci Java odlišná. Uložte a zavřete soubor a upozorněte systemd, že existuje nový soubor jednotky:
sudo systemctl daemon-reload
Povolte a spusťte službu Tomcat:
sudo systemctl enable --now tomcat
Zkontrolujte stav služby:
sudo systemctl status tomcat
Výstup by měl ukazovat, že server Tomcat je povolen a spuštěn:
● tomcat.service - Tomcat 9 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-05-25 17:58:37 UTC; 4s ago
Process: 5342 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 5362 (java)
...
Tomcat můžete spustit, zastavit a restartovat stejně jako jakoukoli jinou systémovou službu:
sudo systemctl start tomcat
sudo systemctl stop tomcat
sudo systemctl restart tomcat
Konfigurace brány firewall #
Pokud je váš server chráněn bránou firewall a chcete k Tomcatu přistupovat zvenčí místní sítě, musíte otevřít port 8080
.
Pomocí následujícího příkazu otevřete potřebný port:
sudo ufw allow 8080/tcp
Obecně platí, že když spouštíte Tomcat v produkčním prostředí, měli byste použít nástroj pro vyrovnávání zatížení nebo reverzní proxy. Nejlepším postupem je povolit přístup k portu 8080
pouze z vaší vnitřní sítě. Konfigurace webového rozhraní správy Tomcat #
V tuto chvíli byste měli mít přístup k Tomcatu pomocí webového prohlížeče na portu 8080
. Webové rozhraní pro správu není přístupné, protože jsme ještě nevytvořili uživatele.
Uživatelé a role Tomcat jsou definovány v tomcat-users.xml
soubor. Tento soubor je šablona s komentáři a příklady, které ukazují, jak vytvořit uživatele nebo roli.
V tomto příkladu vytvoříme uživatele s rolemi „admin-gui“ a „manager-gui“. Role „admin-gui“ umožňuje uživateli přístup k /host-manager/html
URL a vytvářet, mazat a jinak spravovat virtuální hostitele. Role „manager-gui“ umožňuje uživateli nasadit a zrušit nasazení webové aplikace, aniž by musel restartovat celý kontejner prostřednictvím /host-manager/html
rozhraní.
Otevřete tomcat-users.xml
soubor a vytvořte nového uživatele, jak je uvedeno níže:
sudo nano /opt/tomcat/latest/conf/tomcat-users.xml
/opt/tomcat/latest/conf/tomcat-users.xml<tomcat-users>
<!--
Comments
-->
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users>
Ujistěte se, že jste změnili uživatelské jméno a heslo na něco bezpečnějšího.
Ve výchozím nastavení je webové rozhraní správy Tomcat nakonfigurováno tak, aby umožňovalo přístup k aplikacím Správce a Správce hostitelů pouze z místního hostitele. Chcete-li přistupovat k webovému rozhraní ze vzdálené IP adresy, budete muset tato omezení odstranit. To může mít různé bezpečnostní důsledky a nedoporučuje se to pro produkční systémy.
Chcete-li povolit přístup k webovému rozhraní odkudkoli, otevřete následující dva soubory a okomentujte nebo odstraňte žlutě zvýrazněné řádky.
Pro aplikaci Správce:
sudo nano /opt/tomcat/latest/webapps/manager/META-INF/context.xml
Pro aplikaci Host Manager:
sudo nano /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
context.xml<Context antiResourceLocking="false" privileged="true" >
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
Pokud chcete k webovému rozhraní přistupovat pouze z konkrétní IP adresy, místo komentování bloků přidejte do seznamu svou veřejnou IP.
Řekněme, že vaše veřejná IP je 41.41.41.41
a chcete povolit přístup pouze z této IP:
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|41.41.41.41" />
</Context>
Seznam povolených IP adres je seznam oddělený svislou čárou |
. Můžete přidat jednu IP adresu nebo použít regulární výrazy.
Po dokončení restartujte službu Tomcat, aby se změny projevily:
sudo systemctl restart tomcat
Otestujte instalaci Tomcat #
Otevřete prohlížeč a zadejte:http://<your_domain_or_IP_address>:8080
Za předpokladu úspěšné instalace by se měla objevit obrazovka podobná následující:
Správce webových aplikací Tomcat je k dispozici na adrese:http://<your_domain_or_IP_address>:8080/manager/html
.
Správce virtuálních hostitelů Tomcat je k dispozici na adrese:http://<your_domain_or_IP_address>:8080/host-manager/html
.