Was ist Tomcat?
In diesem Artikel zeigen wir Ihnen, wie Sie Apache Tomcat unter CentOS 8 installieren. Bevor wir beginnen, wollen wir genau definieren, was Apache Tomcat ist. Apache definiert Tomcat als:„Ein Open-Source-Servlet-Container, JavaServer Pages, Java Expression Language und WebSocket-Technologie, der auch als Webserver fungiert. Er bietet eine „reine Java“-basierte HTTP-Serverumgebung, in der Java dies kann ausgeführt werden .“ Tomcat arbeitet mit der Programmiersprache Java und ist mit in Java geschriebenen Webanwendungen verbunden.
Voraussetzungen
Unsere erste Aufgabe besteht darin, sicherzustellen, dass unser System aktualisiert wird. Da wir Tomcat auf CentOS 8 installieren werden, führen wir die folgenden Befehle aus.
cat /etc/redhat-release
yum -y install epel-release
yum -y update -y
Als nächstes müssen wir überprüfen, ob Java bereits installiert ist.
java -version
Aber wenn wir Java nicht installiert haben, erhalten wir die Ausgabe im Screenshot unten.
Installieren Sie Java
Lassen Sie uns nun Java installieren. Apache Tomcat funktioniert nicht richtig, wenn Java nicht auf dem System vorhanden ist. Außerdem müssen wir sicherstellen, dass wir Java OpenJDK 11 installieren. Da es sich um Open Source und eine langfristige Version handelt, werden wir dies tun keine Lizenzprobleme auftreten. Um diese Aufgabe zu erfüllen, verwenden wir den folgenden Befehl.
dnf install java-11-openjdk-devel -y
Als nächstes überprüfen wir die installierte Java-Version, indem wir diesen Befehl ausführen.
java -version
Tomcat installieren
Hinweis: Zum Zeitpunkt des Schreibens dieses Artikels ist die neueste Version von Tomcat 10.0.6. Wenn Sie die neueste Version herunterladen möchten, besuchen Sie diesen Download-Link für Tomcat 10, um nach der neuesten Version zu suchen.
Also müssen wir zuerst einen Benutzer für Tomcat erstellen.
useradd -r tomcat
Als nächstes erstellen wir einen Ordner und verwenden dann die Datei „cd ” Befehl, um Verzeichnisse in diesen Ordner zu wechseln, in den wir Tomcat herunterladen werden.
mkdir /usr/local/tomcat10
cd /usr/local/tomcat10
Lassen Sie uns nun das Tomcat-Archiv mit curl herunterladen (wget ist auch eine Option, wenn es auf Ihrer Version von CentOS 8 installiert ist.)
curl -o tomcat10.tar.gz https://downloads.apache.org/tomcat/tomcat-10/v10.0.6/bin/apache-tomcat-10.0.6.tar.gz
Hinweis: Die Verwendung des Befehls curl mit dem Flag -o ermöglicht es uns, die tar.gz-Datei herunterzuladen und lokal unter einem beliebigen Dateinamen zu speichern. In diesem Fall haben wir die Datei einfach als tomcat10.tar.gz gespeichert.
Als nächstes können wir die Datei „tomcat10 tar.gz entpacken ”-Datei in unseren Arbeitsordner.
tar -xvf tomcat10.tar.gz
Also müssen wir jetzt den Besitz des Verzeichnisses /usr/local/tomcat10/ ändern.
chown -R tomcat:tomcat /usr/local/tomcat10
Kopieren Sie dann die Dateien in apache-tomcat10.0.6 in das Verzeichnis tomcat10, indem Sie die folgenden Befehle verwenden:
cd apache-tomcat-10.0.6/
cp -r * /usr/local/tomcat10
Zusätzlich zu Standardmäßig befinden sich Ihre Dateien in diesem Ordner:/usr/local/tomcat 10 und die Konfigurationsdateien werden gespeichert in:/usr/local/tomcat10/conf
ll
Umgebungsvariable setzen
Jetzt können wir die Umgebungsvariable CATALINA_HOME mit den folgenden Befehlen konfigurieren:
echo "export CATALINA_HOME="/usr/local/tomcat10"" >> ~/.bashrc
source ~/.bashrc
Diese Variable wird gesetzt, um sicherzustellen, dass der Softwarezugriff allen Benutzern Ihres Systems gestattet ist.
Erstellen und konfigurieren Sie den Systemd-Dienst
Sehen wir uns also zuerst unsere Java-Informationen an, da wir diese Informationen benötigen, um einen Teil unserer Unit-Datei zu füllen.
alternatives --list | grep java
Um sicherzustellen, dass Tomcat als Dienst eingerichtet ist, erstellen wir als Nächstes eine einfache systemd-Unit-Datei.
Hinweis: Eine Unit-Datei ist ein Klartext-Datensatz, der die Systemressourcen definiert, die für die Verwaltung durch die systemd-Daemons verfügbar sind.
touch /etc/systemd/system/tomcat.service
vim /etc/systemd/system/tomcat.service
Jetzt können wir unserer neuen Unit-Datei die folgenden Informationen hinzufügen.
[Unit]
Description=Apache Tomcat Server
After=syslog.target network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment=CATALINA_PID=/usr/local/tomcat10/temp/tomcat.pid
Environment=CATALINA_HOME=/usr/local/tomcat10
Environment=CATALINA_BASE=/usr/local/tomcat10
ExecStart=/usr/local/tomcat10/bin/catalina.sh start
ExecStop=/usr/local/tomcat10/bin/catalina.sh stop
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
Diese Unit-Datei kann neben den oben aufgeführten mehrere Anweisungen enthalten. Danach müssen wir die Datei speichern (mit :wq) und den Dienst neu laden, um die Änderungen zu übernehmen.
systemctl daemon-reload
Jetzt können wir also die systemd-Java-Konfigurationsdatei testen.
Starten, aktivieren und prüfen Sie den Status von Tomcat
Als nächstes starten wir den Tomcat-Dienst und aktivieren ihn dann.
[root@unixcop tomcat10]# systemctl start tomcat.service
[root@unixcop tomcat10]# systemctl enable tomcat.service
Jetzt können wir seinen Status mit dem folgenden Befehl überprüfen.
systemctl status tomcat.service
Drücken Sie abschließend die Taste „q“, um die Statusprüfung zu verlassen und zur Bash-Eingabeaufforderung zurückzukehren.
Versionsprüfung
Um die Tomcat-Serverinformationen abzurufen, können wir den folgenden Befehl verwenden:
/usr/local/tomcat10/bin/version.sh
Testen
Als nächstes öffnen wir einen Browser, um die Verbindung zu testen.
Laden Sie http://localhost:8080 oder http://serverIP:8080 in Ihren Browser, und Sie sollten ein Bild wie das untenstehende sehen.
Fehler!
Wenn Sie zufällig einen „err_ssl_protocol_error erhalten ”-Seite, wenn Sie http://ip.ad.dr.ess:8080/ besuchen, überprüfen Sie den Fehler mit curl und führen Sie nach der Überprüfung die folgenden Schritte aus.
#curl -Iv https://IPADRESSE:8080
Zum Beispiel meine Maschinen-IP hinzufügen:
curl -Iv https://192.168.232.128:8080
1. Stellen Sie sicher, dass die Java/Tomcat-Ports in der Firewall geöffnet sind
firewall-cmd --zone=public --permanent --add-port=8080/tcp
firewall-cmd --zone=public --permanent --add-port=8443/tcp
2. Führen Sie dann einen netstat-Befehl aus, um zu prüfen, ob der Server auf die IPv4-Adressen (und/oder IPv6-Adressen, falls erforderlich) wartet.
Nachdem wir also netstat überprüft hatten, sahen wir, dass Tomcat nur an die IPv6-Protokollports gebunden war.
[root@unixcop tomcat10]# netstat -nlp | grep java
Hinweis: Daher müssen Sie möglicherweise Netstat mit dem Befehl „yum install net-tools“ installieren, um dieses Problem anzuzeigen, da unsere Version von CentOS 8 den Befehl netstat standardmäßig nicht enthielt.
Um dies zu beheben, erstellen Sie entweder in Ihrem CATALINA_BASE- oder CATALINA_HOME-Verzeichnis bin/ eine Datei namens setenv.sh-Datei
(Wir haben die Datei /usr/local/tomcat10/bin verwendet Ordner).
Erstellen Sie dann eine neue Datei namens setenv.sh.
cd bin/
touch setenv.sh
vim setenv.sh
Klicken Sie auf Einfügen und fügen Sie der Datei die folgende Zeile hinzu.
JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true "
Dieser Eintrag überschreibt die von Tomcat verwendeten Standardeinstellungen. Sobald diese Aufgabe abgeschlossen ist, speichern und beenden Sie die Datei mit „:wq “ und laden Sie die Dienste neu, um unsere Änderungen zu speichern.
systemctl daemon-reload
Lassen Sie uns nun die Ports mit demselben Befehl erneut überprüfen:
[root@unixcop tomcat10]# netstat -nlp | grep java
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 59815/java
tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN 59815/java
tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN 59815/java
Vergewissern Sie sich, dass die richtigen Firewall-Ports geöffnet sind.
[root@unixcop ~]# firewall-cmd --zone=public --list-ports | grep 8080
8080/tcp 8443/tcp
[root@unixcop ~]#
Wenn das alles fehlschlägt, können Sie den Firewall-Dienst stoppen und vorübergehend deaktivieren, um Ihre Tomcat-Seite zu testen:
systemctl disable firewalld
systemctl stop firewalld
Konfigurationseinstellungen
Hier sind ein paar nützliche Konfigurationseinstellungen für Tomcat.
Benutzer hinzufügen
Daher müssen wir möglicherweise neue Benutzer oder einen Administratorbenutzer hinzufügen. Wir können dies erreichen, indem wir zum Tomcat-conf-Ordner gehen und diese Einstellungen ändern.
[root@unixcop conf]# cd /usr/local/tomcat10/conf
<!-- user admin can access manager and admin section both -->
<role rolename="admin-gui" />
<user username="admin" password="_SECRET_PASSWORD_" roles="manager-gui,admin-gui" />
Hinweis:Wir können die Datei über vi oder vim öffnen oder indem wir den Dateimanager verwenden und die Datei mit einem Texteditor öffnen .
Verwenden Sie schließlich :wq, um die Datei zu speichern.
Ports ändern
Es kann also vorkommen, dass Sie Tomcat auf einem alternativen Port ausführen möchten. Um dies zu erreichen, können wir die Connector-Port-Einstellung in der Datei server.xml ändern.
Dies sind die Schritte, die Sie unternehmen müssen.
[root@unixcop conf]# cd /usr/local/tomcat10/conf/
[root@unixcop conf]# vim /usr/local/tomcat10/conf/server.xml
Zusätzlich zu In der server.xml-Datei oder in einem Texteditor können wir die Zeile „Connector-Port“ ändern, indem wir sie von Port 8080 auf 80 oder eine andere Portnummer unserer Wahl ändern.
Line
68 <Connector port="8080" protocol="HTTP/1.1"
69 connectionTimeout="20000"
70 redirectPort="8443" />
Schlussfolgerung
Insgesamt erleichtert Tomcat den Datenaustausch zwischen einem Client und dem Servlet auf einfache Weise, stellt eine Programmierplattform für Webanwendungen bereit und übernimmt die Funktionen der Identifizierung und Autorisierung von Clients, wobei Sitzungen für jeden von ihnen auf sichere Weise erstellt werden.