Apache Tomcat ist ein Open-Source-Webserver und Servlet-Container, der von der Apache Software Foundation (ASF) entwickelt wurde.
Tomcat implementiert das Java-Servlet und die JavaServer Pages (JSP)-Spezifikationen von Oracle und stellt eine „reine Java“-HTTP-Webserverumgebung zum Ausführen der Java-Codes bereit.
Apache Tomcat enthält Tools zur Konfiguration und Verwaltung, kann aber auch durch Bearbeiten von XML-Konfigurationsdateien konfiguriert werden.
Hier ist die Schritt-für-Schritt-Anleitung zur Installation von Apache Tomcat 9.0 / 8.5 auf CentOS 6 / RHEL 6.
Voraussetzungen
Installieren Sie Java
Für Tomcat muss eine stabile Version von Java 8 oder höher auf Ihrem Computer installiert sein. Sie können entweder Oracle JDK oder OpenJDK auf Ihrem Computer installieren.
Hier verwende ich OpenJDK.
yum install -y java-1.8.0 wget
Sie können Java auch überprüfen, indem Sie den folgenden Befehl ausführen.
java -version
Ausgabe:
openjdk version "1.8.0_222" OpenJDK Runtime Environment (build 1.8.0_222-b10) OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)
Erstellen Sie ein Dienstkonto
Als Best Practice sollte Tomcat niemals als privilegierter Benutzer (Root) ausgeführt werden. Erstellen Sie also einen Benutzer mit geringen Rechten zum Ausführen des Tomcat-Dienstes.
useradd -d /opt/tomcat tomcat
Installieren Sie Apache Tomcat
Apache Tomcat herunterladen
Laden Sie Apache Tomcat von der offiziellen Website herunter.
### Apache Tomcat 9.0 ### wget https://www-us.apache.org/dist/tomcat/tomcat-9/v9.0.22/bin/apache-tomcat-9.0.22.tar.gz ### Apache Tomcat 8.5 ### wget https://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.43/bin/apache-tomcat-8.5.43.tar.gz
Apache Tomcat einrichten
Extrahieren Sie den Kater in die gewünschte Datei (/opt/tomcat
) Verzeichnis.
tar -zxvf apache-tomcat-*.tar.gz mv apache-tomcat-*/* /opt/tomcat/ chown -R tomcat:tomcat /opt/tomcat/
Init-Skript erstellen
Apache Tomcat kann mit dem mitgelieferten Skript manuell gestartet und gestoppt werden. Aber hier werden wir das Init-Skript verwenden, um damit umzugehen.
vi /etc/init.d/tomcat9
Verwenden Sie die folgenden Informationen.
#!/bin/bash # chkconfig: 2345 95 20 # description: This application was developed by me and is tested on this server # processname: my_app # # Tomcat 8 start/stop/status init.d script # Initially forked from: https://gist.github.com/valotas/1000094 # @author: Miglen Evlogiev <[email protected]> # # Release updates: # Updated method for gathering pid of the current proccess # Added usage of CATALINA_BASE # Added coloring and additional status # Added check for existence of the tomcat user # Added termination proccess #Location of JAVA_HOME (bin files) export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64/ #Add Java binary files to PATH export PATH=$JAVA_HOME/bin:$PATH #CATALINA_HOME is the location of the bin files of Tomcat export CATALINA_HOME=/opt/tomcat/ #CATALINA_BASE is the location of the configuration files of this instance of Tomcat export CATALINA_BASE=/opt/tomcat/ #TOMCAT_USER is the default user of tomcat export TOMCAT_USER=tomcat #TOMCAT_USAGE is the message if this script is called without any options TOMCAT_USAGE="Usage: $0 {\e[00;32mstart\e[00m|\e[00;31mstop\e[00m|\e[00;31mkill\e[00m|\e[00;32mstatus\e[00m|\e[00;31mrestart\e[00m}" #SHUTDOWN_WAIT is wait time in seconds for java proccess to stop SHUTDOWN_WAIT=20 tomcat_pid() { echo `ps -fe | grep $CATALINA_BASE | grep -v grep | tr -s " "|cut -d" " -f2` } start() { pid=$(tomcat_pid) if [ -n "$pid" ] then echo -e "\e[00;31mTomcat is already running (pid: $pid)\e[00m" else # Start tomcat echo -e "\e[00;32mStarting tomcat\e[00m" #ulimit -n 100000 #umask 007 #/bin/su -p -s /bin/sh $TOMCAT_USER if [ `user_exists $TOMCAT_USER` = "1" ] then /bin/su $TOMCAT_USER -c $CATALINA_HOME/bin/startup.sh else sh $CATALINA_HOME/bin/startup.sh fi status fi return 0 } status(){ pid=$(tomcat_pid) if [ -n "$pid" ]; then echo -e "\e[00;32mTomcat is running with pid: $pid\e[00m" else echo -e "\e[00;31mTomcat is not running\e[00m" fi } terminate() { echo -e "\e[00;31mTerminating Tomcat\e[00m" kill -9 $(tomcat_pid) } stop() { pid=$(tomcat_pid) if [ -n "$pid" ] then echo -e "\e[00;31mStoping Tomcat\e[00m" #/bin/su -p -s /bin/sh $TOMCAT_USER sh $CATALINA_HOME/bin/shutdown.sh let kwait=$SHUTDOWN_WAIT count=0; until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ] do echo -n -e "\n\e[00;31mwaiting for processes to exit\e[00m"; sleep 1 let count=$count+1; done if [ $count -gt $kwait ]; then echo -n -e "\n\e[00;31mkilling processes didn't stop after $SHUTDOWN_WAIT seconds\e[00m" terminate fi else echo -e "\e[00;31mTomcat is not running\e[00m" fi return 0 } user_exists(){ if id -u $1 >/dev/null 2>&1; then echo "1" else echo "0" fi } case $1 in start) start ;; stop) stop ;; restart) stop start ;; status) status ;; kill) terminate ;; *) echo -e $TOMCAT_USAGE ;; esac exit 0
Kredit :Timothy Hutz.
Setzen Sie das Skript auf ausführbar.
chmod +x /etc/init.d/tomcat9
Apache Tomcat starten
Starten Sie den Dienst.
service tomcat9 start
Sie können überprüfen, ob der Dienst läuft, standardmäßig läuft Tomcat auf Port Nr. 8080
netstat -antup | grep 8080
Ausgabe:
tcp 0 0 :::8080 :::* LISTEN 1526/java
Aktivieren Sie den Tomcat-Dienst so, dass er beim Systemstart automatisch gestartet wird.
chkconfig --add tomcat9 chkconfig tomcat9 on
Firewall
Anfragen der Tomcat-Webanwendung durch die Firewall zulassen.
iptables -I INPUT -p tcp -m tcp --dport 8080 -j ACCEPT /etc/init.d/iptables save
Apache Tomcat Web-UI konfigurieren
Tomcat kann über den Web-Manager und den virtuellen Host-Manager verwaltet werden. Sowohl der Web-Manager als auch der Host-Manager sind passwortgeschützt und erfordern einen Benutzernamen und ein Passwort für den Zugriff.
Der Benutzer mit manager-gui und admin-gui Rolle haben Zugriff auf Web Application Manager bzw. Host-Manager. Diese Benutzer und Rollen sind in tomcat-users.xml definiert.
vi /opt/tomcat/conf/tomcat-users.xml
Platzieren Sie die folgenden beiden Zeilen direkt über der letzten Zeile.
<role rolename="admin-gui,manager-gui"/> <user username="admin" password="tomcat" roles="manager-gui,admin-gui"/>
Aus Sicherheitsgründen sind Web Manager und Host Manager nur vom localhost aus zugänglich, d. h. vom Server selbst.
Um vom Remote-System aus auf Web- und Host-Manager zugreifen zu können, müssen Sie Ihr Quellnetzwerk zur Zulassungsliste hinzufügen. Bearbeiten Sie dazu die beiden folgenden Dateien.
### Web Manager ### vi /opt/tomcat/webapps/manager/META-INF/context.xml ### Host Manager ### vi /opt/tomcat/webapps/host-manager/META-INF/context.xml
Aktualisieren Sie die untere Zeile in den obigen Dateien mit der Quell-IP, von der aus Sie auf den Web- und Host-Manager zugreifen. .* ermöglicht jedem den Zugriff auf beide Manager.
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|.*" />
ODER
Sie können auch nur einen Teil Ihres Netzwerks zulassen. Beispiel:Um nur das Netzwerk 192.168.1.0/24 zuzulassen, können Sie die folgenden Werte verwenden.
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.1.*" />
Starten Sie den Tomcat-Dienst neu.
service tomcat9 restart
Greifen Sie auf Apache Tomcat zu
Öffnen Sie den Webbrowser und zeigen Sie auf
http://ip.add.re.ss:8080Sie würden die Tomcat-Standardseite erhalten.
Web Manager:– Anmeldung erforderlich. Benutzername:admin, Passwort:tomcat.
Hier können Sie eine neue Anwendung bereitstellen, eine neue Anwendung in einem bestimmten Kontext bereitstellen, die aktiven oder inaktiven Anwendungen auflisten und die Webanwendungen starten und stoppen.
Außerdem können Sie den Serverstatus überprüfen .
Host-Manager:– Anmeldung erforderlich. Benutzername:admin, Passwort:tomcat.
Hier können Sie mit virtuellen Hosts von Tomcat umgehen.
Schlussfolgerung
Das ist alles. Ich hoffe, Sie haben gelernt, wie man Tomcat 9 auf CentOS 6 / RHEL 6 installiert. Sie können jetzt Ihre erste Webanwendung bereitstellen. Ziehen Sie als Sicherheitsempfehlung die Implementierung von SSL/TLS für Tomcat in Betracht