Apache Tomcat je open-source aplikační server založený na JAVA, který implementuje technologie 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ě.
Tento tutoriál vysvětluje, jak nainstalovat Apache Tomcat 9.0 na Debian 10 Buster a nakonfigurovat rozhraní webové správy Tomcat.
Předpoklady #
Pokyny předpokládají, že jste přihlášeni jako root nebo uživatel s právy sudo.
Instalace OpenJDK #
Tomcat 9.0 vyžaduje, aby byla na serveru nainstalována Java SE 8 nebo novější.
Chcete-li nainstalovat balíček OpenJDK, spusťte následující příkaz:
sudo apt install default-jdk
Vytvoření uživatele Tomcat #
Spuštění Tomcatu jako uživatel root představuje bezpečnostní riziko a nedoporučuje se. Vytvoříme nového uživatele, který bude sloužit ke spuštění služby Tomcat.
Spuštěním následujícího příkazu se vytvoří nový systémový uživatel a skupina s domovským adresářem /opt/tomcat
:
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Stahování Tomcat #
V době psaní tohoto článku je nejnovější verze Tomcatu 9.0.27
. Než budete pokračovat dalším krokem, měli byste zkontrolovat stránku pro stahování Tomcat 9, abyste zjistili, zda není k dispozici novější verze.
Změňte na /tmp
adresář a stáhněte si nejnovější binární verzi Tomcat:
cd /tmp
wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz
Po dokončení stahování rozbalte archiv gzip:
tar -xf apache-tomcat-9.0.27.tar.gz
Přesuňte zdrojové soubory Tomcatu do /opt/tomcat
adresář:
sudo mv apache-tomcat-9.0.27 /opt/tomcat/
Tomcat 9 je pravidelně aktualizován. Chcete-li mít větší kontrolu nad verzemi a aktualizacemi, vytvořte symbolický odkaz s názvem latest
který ukazuje na instalační adresář Tomcat:
sudo ln -s /opt/tomcat/apache-tomcat-9.0.27 /opt/tomcat/latest
Později při upgradu Tomcatu jednoduše rozbalte novější verzi a změňte symbolický odkaz tak, aby ukazoval na nejnovější verzi.
Změňte vlastnictví /opt/tomcat
adresář pro uživatele a skupinu tomcat
, takže uživatel může mít přístup do instalačního adresáře:
sudo chown -R tomcat: /opt/tomcat
Vytvořte skripty uvnitř bin
spustitelný adresář:
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
Vytváření souboru jednotky SystemD #
Otevřete textový editor a vytvořte nový soubor s názvem tomcat.service
s následujícím obsahem:
sudo nano /etc/systemd/system/tomcat.service
/etc/systemd/system/tomcat.service[Unit]
Description=Tomcat 9.0 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"
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
Informujte systemd, že existuje nový soubor jednotky, a spusťte službu Tomcat zadáním:
sudo systemctl daemon-reload
sudo systemctl start tomcat
Zkontrolujte stav služby Tomcat zadáním:
sudo systemctl status tomcat
● tomcat.service - Tomcat 9.0 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset:
Active: active (running) since Sat 2019-11-09 13:53:51 PST; 5s ago
Process: 5752 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status
Main PID: 5759 (java)
Pokud nejsou žádné chyby, povolte automatické spuštění služby Tomcat při spouštění:
sudo systemctl enable tomcat
Tomcat můžete spustit, zastavit a restartovat stejně jako jakoukoli jinou službu systémové jednotky:
sudo systemctl start tomcat
sudo systemctl stop tomcat
sudo systemctl restart tomcat
Úprava brány firewall #
Pokud máte v systému Debian spuštěnou bránu firewall a chcete přistupovat k rozhraní tomcat zvenčí místní sítě, budete muset otevřít port 8080
:
sudo ufw allow 8080/tcp
Když spouštíte aplikaci Tomcat v produkčním prostředí, s největší pravděpodobností budete mít nástroj pro vyrovnávání zatížení nebo reverzní proxy a je nejlepším postupem omezit přístup k portu 8080 pouze na vaši interní síť.
Konfigurace webového rozhraní správy Tomcat #
Nyní, když je Tomcat nainstalován, je dalším krokem vytvoření uživatele s přístupem k webovému rozhraní pro správu.
Uživatelé Tomcat a jejich role jsou definováni v tomcat-users.xml
soubor.
Pokud soubor otevřete, všimnete si, že je plný komentářů a příkladů popisujících, jak soubor nakonfigurovat:
sudo nano /opt/tomcat/latest/conf/tomcat-users.xml
Nového uživatele definujeme v tomcat-users.xml
soubor, jak je uvedeno níže. Uživatel bude mít přístup k webovému rozhraní kocourků (manager-gui a admin-gui). 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í webové rozhraní správy Tomcat umožňuje přístup pouze z localhost. Pokud chcete k webovému rozhraní přistupovat ze vzdálené IP adresy nebo odkudkoli, což se nedoporučuje, protože se jedná o bezpečnostní riziko, můžete otevřít následující soubory a provést následující změny.
Pokud potřebujete přistupovat k webovému rozhraní odkudkoli, otevřete následující soubory a okomentujte nebo odstraňte žlutě zvýrazněné řádky:
/opt/tomcat/latest/webapps/manager/META-INF/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>
/opt/tomcat/latest/webapps/host-manager/META-INF/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 potřebujete k webovému rozhraní přistupovat pouze z konkrétní IP adresy, místo komentování bloků přidejte svou veřejnou IP do seznamu. Řekněme, že vaše veřejná IP je 32.32.32.32
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|32.32.32.32" />
</Context>
/opt/tomcat/latest/webapps/host-manager/META-INF/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|32.32.32.32" />
</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.
Restartujte službu Tomcat, aby se změny projevily:
sudo systemctl restart tomcat
Otestujte instalaci #
Otevřete prohlížeč a zadejte:http://<your_domain_or_IP_address>:8080
Pokud je instalace úspěšná, zobrazí se obrazovka podobná následující:
Panel správce webových aplikací Tomcat je dostupný 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.
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.