Apache Tomcat je open-source implementace technologií Java Servlet, JavaServer Pages, Java Expression Language a Java WebSocket. Je to dnes jedna z nejrozšířenějších aplikací a webových serverů na světě. Tomcat se snadno používá a má robustní ekosystém doplňků.
Tento tutoriál ukazuje, jak nainstalovat Tomcat 8.5 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 #
Než budete pokračovat v tomto tutoriálu, ujistěte se, že jste přihlášeni jako uživatel s právy sudo.
Instalovat OpenJDK #
OpenJDK, open-source implementace platformy Java je výchozím vývojovým a runtime Java v Ubuntu 18.04.
Instalace OpenJDKpackage je docela přímá:
sudo apt install default-jdk
Vytvořit uživatele Tomcat #
Vytvoříme novou systémovou skupinu uživatelů a uživatelů s domovským adresářem /opt/tomcat
na kterém bude spuštěna služba Tomcat:
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Stáhnout Tomcat #
Použijeme wget
a unzip
stáhnout a rozbalit archiv Tomcat. Pokud nemáte unzip
a wget
nainstalovaný na vašem systému nainstalujte balíčky pomocí:
sudo apt install unzip wget
Stáhněte si nejnovější verzi Tomcat 8.5.x ze stránky pro stahování Tomcat. V době psaní tohoto článku je nejnovější verze 8.5.37. Než budete pokračovat dalším krokem, měli byste zkontrolovat stránku stahování, zda neobsahuje novou verzi.
Změňte na /tmp
a stáhněte si soubor zip pomocí následujícího příkazu wget:
cd /tmp
wget http://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.zip
Jakmile je stahování dokončeno, rozbalte soubor a přesuňte jej do /opt/tomcat
adresář:
unzip apache-tomcat-*.zip
sudo mkdir -p /opt/tomcat
sudo mv apache-tomcat-8.5.37 /opt/tomcat/
Abychom měli větší kontrolu nad verzemi a aktualizacemi, vytvoříme symbolický odkazlatest
který bude ukazovat na instalační adresář Tomcat:
sudo ln -s /opt/tomcat/apache-tomcat-8.5.37 /opt/tomcat/latest
Pokud později budete chtít upgradovat svou instalaci Tomcat, můžete jednoduše rozbalit novější verzi a změnit symbolický odkaz tak, aby ukazoval na nejnovější verzi.
Uživatel kocourka, kterého jsme dříve nastavili, musí mít přístup k adresáři kocourků, takže změníme vlastnictví adresáře na kocourka uživatele a skupiny:
sudo chown -R tomcat: /opt/tomcat
Vytvořte skripty v bin
adresář spustitelný spuštěním následujícího chmod
příkaz:
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
Vytvořte soubor systemd unit #
Pro spuštění Tomcatu jako služby vytvoříme novou tomcat.service
soubor jednotky v /etc/systemd/system/
adresář s následujícím obsahem:
[Unit]
Description=Tomcat 8.5 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 jsme vytvořili nový soubor jednotky a spusťte službu Tomcat provedením:
sudo systemctl daemon-reload
sudo systemctl start tomcat
Stav služby můžete zkontrolovat pomocí následujícího příkazu:
sudo systemctl status tomcat
● tomcat.service - Tomcat 8.5 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
Active: active (running) since Sat 2018-05-05 11:04:40 UTC; 5s ago
Process: 13478 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 13499 (java)
Tasks: 45 (limit: 507)
CGroup: /system.slice/tomcat.service
└─13499 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/opt/tomcat/latest/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.security.
a pokud se nevyskytnou žádné chyby, můžete povolit automatické spuštění služby Tomcat při spouštění:
sudo systemctl enable tomcat
Upravte bránu firewall #
Pokud je váš server chráněn firewallem a chcete přistupovat k rozhraní tomcat zvenčí místní sítě, budete muset otevřít port 8080
.
Chcete-li povolit provoz na portu 8080
zadejte následující příkaz:
sudo ufw allow 8080/tcp
Při spouštění aplikace Tomcat v produkčním prostředí budete s největší pravděpodobností 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íť. Konfigurovat rozhraní webové správy Tomcat #
Nyní, když máme Tomcat nainstalovaný na našem serveru Ubuntu, je dalším krokem vytvoření uživatele, který bude mít přístup 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 vim /opt/tomcat/latest/conf/tomcat-users.xml
Chcete-li přidat nového uživatele, který má přístup 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 umožňovalo přístup pouze z localhostu, pokud chcete mít přístup k webovému rozhraní 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 proveďte 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
Za předpokladu, že instalace proběhla úspěšně, objeví 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 nasazovat, zrušit nasazení, spouštět, zastavovat a znovu načítat 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.