V tomto článku vám ukážeme, jak nainstalovat a nakonfigurovat Tomcat 10 na Ubuntu a jak jej můžeme integrovat s Apache HTTP Server pomocí konektoru mod_jk.
Apache Tomcat je webový server s otevřeným zdrojovým kódem a kontejner servletů používaný k nasazení a obsluze webových aplikací Java. Většina moderních webových frameworků Java je založena na servletech, např. JavaServer Faces, Struts, Spring atd.
Apache Tomcat také poskytuje ve výchozím nastavení HTTP konektor na portu 8080, tj. Tomcat lze také použít jako HTTP server. Ale výkon Tomcatu není tak dobrý jako výkon určeného webového serveru, jako je Apache HTTP server.
Ve většině produkce se Tomcat používá ve spojení se serverem Apache HTTP Server. Apache HTTP Server se stará o statický obsah, jako je HTML, obrázky atd., a předává požadavky na dynamický obsah Tomcatu.
Tento průvodce instalací a konfigurací platí na Apache s Tomcat 10 na Ubuntu.
1. Nainstalujte Java
Nejprve jako vždy aktualizujte své balíčky:
sudo apt update
Ke spuštění serveru Tomcat musíte mít v systému nainstalovanou Javu. Tomcat 10 vyžaduje na vašem systému nainstalovanou verzi Java SE 8 nebo vyšší. Spusťte následující příkaz a nainstalujte balíček OpenJDK 11 JDK:
sudo apt install openjdk-11-jdk
Zkontrolujte aktuální aktivní verzi Java:
java -version
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)
2. Vytvořit systémového uživatele Tomcat
Spuštění serveru Tomcat pod rootem uživatel představuje bezpečnostní riziko. Proto doporučujeme vytvořit samostatný uživatelský účet pro provoz serveru Tomcat.
Následující příkaz vytvoří uživatele a skupinu s názvem tomcat
ve vašem systému:
sudo useradd -m -d /opt/tomcat -U -s /bin/false tomcat
3. Nainstalujte a nakonfigurujte Apache Tomcat 10
Tomcat je platformově nezávislý nástroj, a pokud je nainstalovaná Java, instalace je přímočarý proces. Nejprve si musíte stáhnout požadovanou verzi z oficiálních webových stránek a poté ji rozbalit v systému souborů.
Nyní si stáhněte nejnovější binární verzi Tomcatu z oficiální stránky pro stahování Tomcat.
wget https://apache.mirrors.nublue.co.uk/tomcat/tomcat-10/v10.0.8/bin/apache-tomcat-10.0.8.tar.gz
Po dokončení stahování rozbalte soubor tar do /opt/tomcat
adresář:
sudo tar xzvf apache-tomcat-10*tar.gz -C /opt/tomcat --strip-components=1
Dále nastavte správná oprávnění souboru:
sudo chown -R tomcat:tomcat /opt/tomcat/
sudo chmod -R u+x /opt/tomcat/bin
Měli byste vytvořit uživatele pro Web Application Manager na serveru Tomcat. Chcete-li používat Apache Tomcat Web Application Manager, musí být nastaven nový uživatelský účet.
Chcete-li to provést, upravte tomcat-users.xml
soubor ve vašem editoru:
sudo vim /opt/tomcat/conf/tomcat-users.xml
Vložte následující kód do <tomcat-users>
</tomcat-users>
značky. Nezapomeňte změnit PASSWORD
pro přístup správce a správce.
<!-- user manager can access only manager section -->
<role rolename="manager-gui" />
<user username="manager" password="PASSWORD" roles="manager-gui" />
<!-- user admin can access manager and admin section both -->
<role rolename="admin-gui" />
<user username="admin" password="PASSWORD" roles="manager-gui,admin-gui" />
Tomcat poskytuje webovou konzolu pro správu. Výchozí server Tomcat neumožňuje vzdálený přístup aplikacím Manager a Host Manager. Můžete k nim však přistupovat pouze z localhost.
Chcete-li povolit vzdálená připojení, postupujte podle pokynů níže.
Vytvořte soubor conf/Catalina/localhost/manager.xml
:
sudo vim /opt/tomcat/conf/Catalina/localhost/manager.xml
Přidejte následující obsah:
<Context privileged="true" antiResourceLocking="false" docBase="{catalina.home}/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
Musíte také vytvořit soubor xml pro webovou aplikaci host-manager, abyste umožnili přístup vzdáleným hostitelům.
sudo vim /opt/tomcat/conf/Catalina/localhost/host-manager.xml
Přidejte následující obsah:
<Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/host-manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
4. Vytvořte službu Tomcat Systemd
Potřebujeme vytvořit spouštěcí skript pro správu Tomcatu jako služby systemd. Vytvořme tomcat.service
soubor.
sudo vim /etc/systemd/system/tomcat.service
Do souboru vložte následující:
[Unit]
Description=Tomcat
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"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
Chcete-li použít změny, znovu načtěte démona systemd:
sudo systemctl daemon-reload
Nastavte Tomcat tak, aby se automaticky spouštěl při spuštění:
sudo systemctl enable tomcat
5. Nainstalujte Apache HTTP Server
Apache je k dispozici ve výchozích softwarových úložištích Ubuntu. Chcete-li jej nainstalovat, zadejte následující příkaz:
sudo apt install apache2
6. Nakonfigurujte Tomcat pro práci s Apache
K integraci procesů serveru Apache Tomcat se serverem Apache HTTP potřebujeme modul mod_jk , která implementuje rozhraní mezi Tomcat a Apache, v kombinaci s několika malými kroky ke konfiguraci Apache a Tomcatu podle našich potřeb.
6.1 Instalace modulu mod_jk
Instalace a konfigurace mod_jk je klíčem k tomu, aby webový server a aplikační server spolupracovaly. Pojďme to tedy nainstalovat:
sudo apt install libapache2-mod-jk
6.2 Konfigurace mod_jk pomocí Apache a Tomcat.
Budete muset povolit AJP Connector v Tomcat, aby server Apache mohl přesměrovat požadavky na Tomcat. Udělali jste to úpravou server.xml
Tomcatu soubor.
sudo vim /opt/tomcat/conf/server.xml
Ujistěte se, že níže uvedený konektor AJP je aktivní a není zakomentován.
<Connector protocol="AJP/1.3" port="8009" secretRequired="false" redirectPort="8443" />
Potřebujeme nakonfigurovat Apache HTTP Server pro načtení a inicializaci modulu JK.
Musíme vytvořit /etc/apache2/workers.properties
soubor. Tento soubor definuje seznam „pracovníků“ Tomcat, kterým může Apache předávat požadavky.
sudo vim /etc/apache2/workers.properties
a do souboru vložte následující:
# Define 1 real worker using ajp13
worker.list=worker1
# Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
Dále na tento soubor odkazujte v primárním konfiguračním souboru Apache apache2.conf
:
sudo vim /etc/apache2/apache2.conf
Na konec přidáme tyto řádky:
JkWorkersFile /etc/apache2/workers.properties
# Where to put jk shared memory
JkShmFile /var/log/apache2/mod_jk.shm
# Where to put jk logs
JkLogFile /var/log/apache2/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the timestamp log format
JkLogStampFormat "[ %a %b %d %H:%M:%S %Y ] "
6.3 Konfigurace, které adresy URL se mají spravovat pomocí Apache
V tomto okamžiku budete muset nakonfigurovat Apache, abyste mu řekli, které adresy URL zpracovat a předat Tomcatu a které adresy URL chcete, aby zpracovával samotný Apache.
sudo vim /etc/apache2/sites-enabled/000-default.conf
Přidejte následující řádek pod DocumentRoot
vstup. To umožňuje požádat o JRS prostřednictvím webového serveru Apache.
JkMount /examples worker1
JkMount /examples/* worker1
7. Jak ověřit, že to funguje
Restartujte služby Apache a Tomcat:
sudo systemctl restart apache2
sudo systemctl restart tomcat
Po spuštění serveru otevřete internetový prohlížeč a přejděte na adresu URL http://server_ip_address:8080
. Tomcat byl nainstalován správně, pokud vidíte podobnou stránku jako na obrázku níže.
Jednoduchým způsobem, jak ověřit, že integrace mezi Apache HTTP Server a Tomcat funguje, je požádat o jeden z ukázkových souborů, které by měl Tomcat poskytovat.
Nasměrujte svůj prohlížeč na http://server_ip_address/examples/
a spusťte některé z ukázkových aplikací.
Gratulujeme! Úspěšně jste integrovali Tomcat se serverem Apache HTTP Server.