Apache Tomcat 10 installeren op Debian 10

Apache Tomcat is open-source en de populairste web-applicatie server die gebruikt wordt om Java-gebaseerde toepassingen te hosten. Het wordt geleverd met Java Servlet, JavaServer Pages (JSP), Java EL, en biedt een omgeving om Java codes te draaien. Tomcat biedt een rijke reeks mogelijkheden, waaronder, lichtgewicht, zeer flexibel, goed gedocumenteerd, biedt extra beveiliging, volwassen en meer.

In deze handleiding leggen we uit hoe je Apache Tomcat 10 op een Debian 10 server kunt installeren.

Vereisten

  • Een server met Debian 10.
  • Een geldige domeinnaam die wijst naar het IP van je server.
  • Een root wachtwoord is op de server ingesteld.

Aan de slag

Voor je begint, update je de systeempakketten naar de laatste versie met het volgende commando:

apt-get update -y

Als alle pakketten bijgewerkt zijn, kun je verder gaan met de volgende stap.

Installeer Java

Apache Tomcat is een op Java gebaseerde toepassing. Je zult dus Java op je server moeten installeren. Je kunt Java installeren met het volgende commando:

apt-get install default-jdk -y

Controleer na de installatie de Java versie met het onderstaande commando:

java --version

De volgende uitvoer toont je de Java versie die op je server geïnstalleerd is.

openjdk 11.0.11 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.11+9-post-Debian-1deb10u1, mixed mode, sharing)

Als je klaar bent, kun je verder gaan met de volgende stap.

Installeer Apache Tomcat

Op het moment van schrijven van deze handleiding is de laatst beschikbare versie van Apache Tomcat 10.0.7.

Voeg eerst de gebruiker toe om Apache Tomcat te draaien met het volgende commando:

useradd -m -d /opt/tomcat -U -s /bin/false tomcat

Download vervolgens de Apache Tomcat 10 met het volgende commando:

wget https://mirrors.estointernet.in/apache/tomcat/tomcat-10/v10.0.7/bin/apache-tomcat-10.0.7.tar.gz

Als de download voltooid is, pak je het gedownloade bestand uit in de map /opt/tomcat met het volgende commando:

tar -xzvf apache-tomcat-10.0.7.tar.gz -C /opt/tomcat --strip-components=1

Zet vervolgens het juiste eigendom op de /opt/tomcat directory met het volgende commando:

chown -R tomcat:tomcat /opt/tomcat/

Als je klaar bent, kun je verder gaan met de volgende stap.

Maak een Tomcat Web Admin gebruiker aan

Vervolgens moet je een admin gebruiker aanmaken om toegang te krijgen tot de Tomcat admin interface. Je kunt die aanmaken door het tomcat-users.xml bestand te bewerken:

nano /opt/tomcat/conf/tomcat-users.xml

Voeg de volgende regels toe vóór de laatste regel:

<role rolename="manager-gui" />
<user username="manager" password="pasword" roles="manager-gui" />

<role rolename="admin-gui" />
<user username="admin" password="password" roles="manager-gui,admin-gui" />

Sla het bestand op en sluit het nadat je klaar bent. Je kunt nu verder gaan met de volgende stap.

Sta toegang op afstand van Tomcat toe

Standaard is Tomcat ingesteld om alleen vanaf het lokale systeem toegang te krijgen. Je zult Tomcat dus zo moeten instellen dat het ook vanaf het remote systeem benaderd kan worden.

Bewerk eerst het context.xml bestand om toegang op afstand tot de Tomcat manager toepassing toe te staan:

nano /opt/tomcat/webapps/manager/META-INF/context.xml

Verwijder de volgende regels of commentaar ze uit:

  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

Bewaar en sluit het bestand en bewerk dan het context .xml bestand om remote toegang tot de Tomcat host manager toepassing toe te staan:

nano /opt/tomcat/webapps/host-manager/META-INF/context.xml

Verwijder de volgende regels:

  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

Sla het bestand op en sluit het als je klaar bent. Je kunt nu verder gaan met de volgende stap.

Maak een Systemd Unit bestand voor Tomcat

Vervolgens moet je een systemd unit bestand maken om de Tomcat dienst te beheren. Je kunt het aanmaken met het volgende commando:

nano /etc/systemd/system/tomcat.service

Voeg de volgende regels toe:

[Unit]
Description=Tomcat
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-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

Bewaar en sluit het bestand en herlaad dan de systemd daemon om de veranderingen toe te passen:

systemctl daemon-reload

Start vervolgens de Tomcat dienst en zet hem aan om te starten bij herstarten van het systeem met het volgende commando:

systemctl start tomcat
systemctl enable tomcat

Je kunt nu de status van de Tomcat dienst controleren met het volgende commando:

systemctl status tomcat

Je zou de volgende uitvoer moeten krijgen:

? tomcat.service - Tomcat
   Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
   Active: active (running) since Thu 2021-07-01 04:58:39 UTC; 15s ago
  Process: 5706 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 5713 (java)
    Tasks: 29 (limit: 2359)
   Memory: 154.7M
   CGroup: /system.slice/tomcat.service
           ??5713 /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.ut

Jul 01 04:58:39 tomcat systemd[1]: Starting Tomcat...
Jul 01 04:58:39 tomcat startup.sh[5706]: Tomcat started.
Jul 01 04:58:39 tomcat systemd[1]: Started Tomcat.

Op dit moment is Tomcat gestart en luistert op poort 8080. Je kunt dit controleren met het volgende commando:

ss -antpl | grep 8080

Je zou de volgende uitvoer moeten krijgen:

LISTEN   0        100                          *:8080                  *:*       users:(("java",pid=5713,fd=43))

Als je klaar bent, kun je verder gaan met de volgende stap.

Configureer Nginx voor Tomcat

Vervolgens is het aan te bevelen Nginx te gebruiken als reverse proxy om de Tomcat toepassing te benaderen.

Installeer eerst de Nginx webserver met het volgende commando:

apt-get install nginx -y

Als Nginx geïnstalleerd is, maak je een nieuw Nginx virtual host configuratiebestand:

nano /etc/nginx/conf.d/tomcat.conf

Voeg de volgende regels toe:

server {
  listen 80;

  server_name    tomcat.example.com;
  access_log /var/log/nginx/access.log;
  error_log /var/log/nginx/error.log;

  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/;
  }
}

Sla het bestand op en sluit het als je klaar bent, controleer dan de Nginx op eventuele syntaxfouten met het volgende commando:

nginx -t

Je zou de volgende uitvoer moeten krijgen:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Herstart vervolgens Nginx om de veranderingen toe te passen:

systemctl restart nginx

Je kunt ook de status van de Nginx dienst controleren met het volgende commando:

systemctl status nginx

Als alles in orde is, zou je de volgende uitvoer moeten zien:

? 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 Thu 2021-07-01 05:00:32 UTC; 6s ago
     Docs: man:nginx(8)
  Process: 6322 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 6323 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 6324 (nginx)
    Tasks: 2 (limit: 2359)
   Memory: 2.7M
   CGroup: /system.slice/nginx.service
           ??6324 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           ??6325 nginx: worker process

Jul 01 05:00:32 tomcat systemd[1]: Starting A high performance web server and a reverse proxy server...
Jul 01 05:00:32 tomcat systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Jul 01 05:00:32 tomcat systemd[1]: Started A high performance web server and a reverse proxy server.

Als je klaar bent, kun je verder gaan met de volgende stap.

Toegang tot de Tomcat toepassing

Open nu je web browser en benader de Tomcat toepassing met de URL http://tomcat.example.com. Je wordt doorverwezen naar de volgende pagina:

Apache Tomcat

Klik op de Beheer App. Je zou de Manager App login pagina moeten zien:

Tomcat Inloggen

Geef je beheerders gebruikersnaam en wachtwoord op en klik op de Sign in knop. Je zou het dashboard van de Manager App op de volgende pagina moeten zien:

Tomcat Web Applicatie Beheer

Om de Host Manager te openen, klik je op de Host Manager vanaf de Tomcat startpagina. Je zou de Tomcat Host Manager login pagina moeten zien:

Tomcat Host Manager Inloggen

Geef je admin gebruikersnaam en wachtwoord op en klik op de knop Sign in. Je zou het Tomcat Host Manager dashboard op de volgende pagina moeten zien:

Tomcat beheerder van virtuele hosts

Conclusie

Gefeliciteerd! Je hebt met succes Apache Tomcat 10 op Debian 10 server geïnstalleerd. Je kunt nu een Java applicatie maken en die hosten met de Apache Tomcat. Voel je vrij me te vragen als je vragen hebt.