Tomcat je bezplatný, open-source a lehký aplikační server používaný k nasazení aplikací založených na Javě. Může být použit jako samostatný server nebo v kombinaci s jinými servery, jako je Apache a Nginx. Poskytuje rozšířenou funkčnost pro interakci se servlety Java a také implementuje několik technických specifikací platformy Java. V současné době je Tomcat jedním z nejrozšířenějších aplikačních serverů pro Javu.
V tomto tutoriálu vám ukážu, jak nainstalovat Tomcat 9 s Nginx na Debian 10.
Předpoklady
- Server se systémem Debian 10.
- Platný název domény s adresou IP vašeho serveru.
- Na vašem serveru je nakonfigurováno heslo uživatele root.
Začínáme
Než začnete, je dobré aktualizovat mezipaměť APT na nejnovější verzi. Můžete jej aktualizovat spuštěním následujícího příkazu:
apt-get update -y
Jakmile bude mezipaměť vašeho systémového balíčku aktuální, můžete přejít k dalšímu kroku.
Instalovat Javu
Tomcat je Java aplikace, takže Java musí být nainstalována na vašem serveru. Pokud není nainstalován, můžete jej nainstalovat pomocí následujícího příkazu:
apt-get install default-jdk -y
Jakmile je Java nainstalována, můžete ověřit verzi Java pomocí následujícího příkazu:
java --version
Měli byste získat následující výstup:
openjdk 11.0.9.1 2020-11-04 OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2) OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode, sharing)
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Instalovat Tomcat
Nejprve budete muset vytvořit vyhrazeného uživatele pro spuštění serveru Tomcat. Můžete jej vytvořit pomocí následujícího příkazu:
useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Dále si stáhněte nejnovější verzi Tomcatu pomocí následujícího příkazu:
wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.45/bin/apache-tomcat-9.0.45.tar.gz
Po dokončení stahování rozbalte stažený soubor pomocí následujícího příkazu:
tar -xvzf apache-tomcat-9.0.45.tar.gz
Dále přesuňte extrahovaný adresář do /opt pomocí následujícího příkazu:
mv apache-tomcat-9.0.45 /opt/tomcat/tomcat
Dále nastavte správná oprávnění a vlastnictví pomocí následujícího příkazu:
chown -R tomcat:tomcat /opt/tomcat/tomcat
chmod -R 755 /opt/tomcat/tomcat
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Vytvoření souboru služby Systemd pro Tomcat
Dále budete muset vytvořit soubor služby systemd pro správu služby Tomcat. Můžete jej vytvořit pomocí následujícího příkazu:
nano /etc/systemd/system/tomcat.service
Přidejte následující řádky:
[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/tomcat" Environment="CATALINA_HOME=/opt/tomcat/tomcat" Environment="CATALINA_PID=/opt/tomcat/tomcat/temp/tomcat.pid" Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC" ExecStart=/opt/tomcat/tomcat/bin/startup.sh ExecStop=/opt/tomcat/tomcat/bin/shutdown.sh [Install] WantedBy=multi-user.target
Uložte a zavřete soubor a poté znovu načtěte démona systemd pomocí následujícího příkazu:
systemctl daemon-reload
Dále spusťte službu Tomcat a povolte její spuštění při restartu systému pomocí následujícího příkazu:
systemctl start tomcat
systemctl enable tomcat
Stav Tomcatu můžete také ověřit pomocí následujícího příkazu:
systemctl status tomcat
Měli byste získat následující výstup:
? tomcat.service - Tomcat 9.0 servlet container Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled) Active: active (running) since Wed 2021-04-14 05:41:21 UTC; 42s ago Process: 5784 ExecStart=/opt/tomcat/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS) Main PID: 5791 (java) Tasks: 30 (limit: 4701) Memory: 159.1M CGroup: /system.slice/tomcat.service ??5791 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/opt/tomcat/tomcat/conf/logging.properties -Djava.util.log Apr 14 05:41:21 debian systemd[1]: Starting Tomcat 9.0 servlet container... Apr 14 05:41:21 debian startup.sh[5784]: Tomcat started. Apr 14 05:41:21 debian systemd[1]: Started Tomcat 9.0 servlet container.
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Konfigurace webového rozhraní Tomcat
Dále budete muset definovat uživatele pro přístup k webovému rozhraní Tomcat. Můžete jej definovat pomocí souboru tomcat-users.xml:
nano /opt/tomcat/tomcat/conf/tomcat-users.xml
Najděte sekci
<role rolename="admin-gui"/> <role rolename="manager-gui"/> <user username="tomcatadmin" password="password" roles="admin-gui,manager-gui"/>
Po dokončení uložte a zavřete soubor.
Ve výchozím nastavení je webové rozhraní Tomcat nakonfigurováno pro přístup pouze z localhost. Budete jej tedy muset nakonfigurovat pro externí přístup.
Pro aplikaci Správce upravte následující řádek:
nano /opt/tomcat/tomcat/webapps/manager/META-INF/context.xml
Pro aplikaci Host Manager upravte následující soubor:
nano /opt/tomcat/tomcat/webapps/host-manager/META-INF/context.xml
Odeberte následující řádek:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
Uložte a zavřete soubor a poté restartujte službu Tomcat, aby se změny projevily:
systemctl restart tomcat
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Konfigurace Nginx pro Tomcat
Dále budete muset nainstalovat a nakonfigurovat Nginx jako reverzní proxy pro Tomcat. Nejprve nainstalujte balíček Nginx pomocí následujícího příkazu:
apt-get install nginx -y
Po instalaci Nginx budete muset vytvořit nový konfigurační soubor virtuálního hostitele Nginx pro Tomcat. Můžete jej vytvořit pomocí následujícího příkazu:
nano /etc/nginx/conf.d/tomcat.conf
Přidejte následující řádky:
server { listen 80; server_name tomcat.example.com; root /opt/tomcat/tomcat/webapps/; location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8080/; } }
Uložte a zavřete soubor a poté ověřte, zda Nginx neobsahuje nějakou chybu syntaxe:
nginx -t
Měli byste vidět následující výstup:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Poté restartujte službu Nginx, aby se změny aplikovaly:
systemctl restart nginx
Dále ověřte stav služby Nginx pomocí následujícího příkazu:
systemctl status nginx
Měli byste vidět následující výstup:
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2021-04-14 05:57:03 UTC; 1min 38s ago Docs: man:nginx(8) Process: 6852 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 6853 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 6854 (nginx) Tasks: 3 (limit: 4701) Memory: 4.0M CGroup: /system.slice/nginx.service ??6854 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ??6855 nginx: worker process ??6856 nginx: worker process Apr 14 05:57:03 debian systemd[1]: Starting A high performance web server and a reverse proxy server... Apr 14 05:57:03 debian systemd[1]: Started A high performance web server and a reverse proxy server.
V tomto okamžiku je Nginx nakonfigurován pro přístup k Tomcat. Nyní můžete přejít k dalšímu kroku.
Přístup k webovému uživatelskému rozhraní Tomcat
Nyní otevřete webový prohlížeč a přejděte k webovému uživatelskému rozhraní Tomcat pomocí adresy URL http://tomcat.example.com . Měli byste vidět následující stránku:
Klikněte na Správce Aplikace , měli byste vidět následující stránku:
Zadejte své uživatelské jméno, heslo správce aplikace a klikněte na Přihlásit se knoflík. Měli byste vidět následující stránku:
Můžete také kliknout na Správce hostitele pro přístup k aplikaci Host Manager, jak je uvedeno níže:
Závěr
Gratulujeme! úspěšně jste nainstalovali Tomcat s Nginx jako reverzní proxy na Debian 10. Nyní můžete svou Java aplikaci snadno nasadit pomocí Tomcatu. Neváhejte se mě zeptat, pokud máte nějaké otázky.