Apache Tomcat je open-source implementace technologií Java Servlet, JavaServer Pages, Java Expression Language a Java WebSocket. Je to dnes jeden z nejrozšířenějších aplikačních a webových serverů na světě. Tomcat se snadno používá a má robustní ekosystém doplňků.
Tento tutoriál vysvětluje, jak nainstalovat a nakonfigurovat Tomcat 9 na Ubuntu 18.04. Stejné pokyny platí pro Ubuntu 16.04 a jakoukoli distribuci založenou na Ubuntu, včetně Linux Mint a Elementary OS.
Předpoklady #
Abyste mohli instalovat balíčky na svůj systém Ubuntu, musíte být přihlášeni jako uživatel s právy sudo.
Krok 1:Instalace OpenJDK #
Tomcat vyžaduje instalaci Javy. Nainstalujeme OpenJDK, což je výchozí vývojové a runtime Java v Ubuntu 18.04.
Instalace Javy je velmi jednoduchá. Začněte aktualizací indexu balíčku:
sudo apt update
Nainstalujte balíček OpenJDK spuštěním:
sudo apt install default-jdk
Krok 2:Vytvoření uživatele Tomcat #
Z bezpečnostních důvodů by Tomcat neměl být spuštěn pod uživatelem root. Vytvoříme novou systémovou skupinu uživatelů a uživatelů s domovským adresářem /opt/tomcat
který bude provozovat službu Tomcat:
sudo useradd -r -m -U -d /opt/tomcat -s /bin/false tomcat
Krok 3:Instalace Tomcat #
Stáhneme si nejnovější binární verzi Tomcat 9 ze stránky stahování Tomcat 9.
V době psaní tohoto článku je nejnovější verze 9.0.27
. Než budete pokračovat dalším krokem, měli byste na stránce stahování zkontrolovat novou verzi. Pokud existuje nová verze, zkopírujte odkaz na jádro tar.gz
soubor, který je v sekci Binární distribuce.
Začněte stažením archivu Tomcat v /tmp
adresář pomocí následujícího wget
příkaz:
wget http://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz -P /tmp
Po dokončení stahování rozbalte archiv Tomcat a přesuňte jej do /opt/tomcat
adresář:
sudo tar xf /tmp/apache-tomcat-9*.tar.gz -C /opt/tomcat
Chcete-li mít větší kontrolu nad verzemi a aktualizacemi Tomcatu, vytvořte symbolický odkaz nazvaný latest
který ukazuje na instalační adresář Tomcat:
sudo ln -s /opt/tomcat/apache-tomcat-9.0.27 /opt/tomcat/latest
Pokud později budete chtít upgradovat svou instanci Tomcat, jednoduše rozbalte novější verzi a změňte symbolický odkaz tak, aby ukazoval na nejnovější verzi.
Jak jsme zmínili v předchozí části, Tomcat poběží pod tomcat
uživatel. Tento uživatel musí mít přístup do instalačního adresáře tomcat.
Následující příkaz změní vlastnictví adresáře na kocour uživatele a skupiny:
sudo chown -RH tomcat: /opt/tomcat/latest
Skripty uvnitř bin
adresář musí mít příznak spustitelného souboru:
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
Krok 4:Vytvořte soubor systemd Unit #
Chcete-li spustit Tomcat jako službu, musíte vytvořit nový soubor jednotky.
Otevřete textový editor a vytvořte soubor s názvem tomcat.service
v /etc/systemd/system/
:
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/default-java"
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 hodnotu JAVA_HOME
pokud je cesta k vaší instalaci Java odlišná. Uložte a zavřete soubor a upozorněte systemd, že jsme vytvořili nový soubor jednotky:
sudo systemctl daemon-reload
Spusťte službu Tomcat spuštěním:
sudo systemctl start tomcat
Zkontrolujte stav služby pomocí následujícího příkazu:
sudo systemctl status tomcat
* tomcat.service - Tomcat 9 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2018-09-05 15:45:28 PDT; 20s ago
Process: 1582 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 1604 (java)
Tasks: 47 (limit: 2319)
CGroup: /system.slice/tomcat.service
Pokud nejsou žádné chyby, povolte automatické spuštění služby Tomcat při spouštění:
sudo systemctl enable tomcat
Krok 5:Úprava 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
.
Chcete-li povolit provoz na portu 8080
zadejte následující příkaz:
sudo ufw allow 8080/tcp
Obvykle při spuštění aplikace Tomcat v produkčním prostředí budete mít nástroj pro vyrovnávání zatížení nebo reverzní proxy. Nejlepším postupem je omezit přístup k portu 8080
pouze do vaší vnitřní sítě. Krok 6:Konfigurace webového rozhraní správy Tomcat #
Nyní, když je Tomcat nainstalován a spuštěn, je dalším krokem vytvoření uživatele s přístupem k webovému rozhraní pro správu.
Uživatelé a role Tomcat jsou definovány v tomcat-users.xml
soubor. Tento soubor je šablona s komentáři a příklady popisujícími konfiguraci uživatele nebo role.
sudo nano /opt/tomcat/latest/conf/tomcat-users.xml
Chcete-li přidat nového uživatele s přístupem k webovému rozhraní Tomcat (manager-gui a admin-gui), musíme uživatele definovat v tomcat-users.xml
soubor, jak je uvedeno níže. Ujistěte se, že jste změnili uživatelské jméno a heslo na něco bezpečnějšího:
<tomcat-users>
<!--
Comments
-->
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users>
Ve výchozím nastavení je webové rozhraní správy Tomcat nakonfigurováno tak, aby omezovalo přístup k aplikacím Manager a Host Manager pouze z místního hostitele.
Pokud chcete mít přístup 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 umožnit přístup k webovému rozhraní odkudkoli, otevřete následující dva soubory a okomentujte nebo odstraňte žlutě zvýrazněné řádky.
V aplikaci Správce otevřete následující soubor:
sudo nano /opt/tomcat/latest/webapps/manager/META-INF/context.xml
Pro aplikaci Host Manager otevřete následující soubor:
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>
Další možností je povolit přístup k aplikacím Správce a Správce hostitelů pouze z konkrétní IP adresy. Místo komentování bloků můžete jednoduše přidat svou IP adresu do seznamu.
Pokud je například vaše veřejná IP adresa 45.45.45.45
provedli byste následující změnu:
<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|45.45.45.45" />
</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.
Nezapomeňte restartovat službu Tomcat pokaždé, když upravíte konfigurační soubory Tomcat, aby se změny projevily:
sudo systemctl restart tomcat
Krok 6: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í:
Panel správce webových aplikací Tomcat je k dispozici na adrese http://<your_domain_or_IP_address>:8080/manager/html
. Odtud můžete nasadit, zrušit nasazení, spustit, zastavit a znovu načíst své aplikace.
Můžete se přihlásit pomocí uživatele, kterého jste vytvořili v Step 6
.
Panel správce virtuálních hostitelů Tomcat je k dispozici na adrese http://<your_domain_or_IP_address>:8080/host-manager/html
. Zde můžete vytvářet, mazat a spravovat virtuální hostitele Tomcat.