Schlagwort-Archive: tomcat

[nginx] Weiterleitung an Tomcat

Damit nginx Anfragen an einen Tomcat weiterleiten kann, muss dieser zunächst einmal installiert werden.

Als erstes wird hierfür die aktuelle Java Version benötigt, diese kann auf der Java Seite bezogen werden. Im Anschluss die heruntergeladene Datei mit tar zxvf entpacken.
Damit der Tomcat unter einem eigenen Benutzer läuft, wurde der Benutzer tomcat angelegt und die entpackte Javaversion in das /home/tomcat Verzeichniss verschoben.

Wenn es beim Aufruf von /home/tomcat/java/bin/java -version zu dem Fehler ./java: /lib/ld-linux.so.2: bad ELF interpreter: Datei oder Verzeichnis nicht gefunden kommt, muss über yum install glibc.i686 das fehlende glibc Paket installiert werden.

Im Anschluss die Tomcat Version herunterladen und entpacken.

wget http://www.us.apache.org/dist/tomcat/tomcat-8/v8.0.24/src/apache-tomcat-8.0.24.tar.gz
tar zxvf apache-tomcat-8.0.24.tar.gz

Für den einfacheren Zugriff wurden zwei Softlinks erstellt.
ln -s apache-tomcat-8.0.24 tomcat
ln -s jdk1.8.0_51 java

Der Datei /home/tomcat/tomcat/conf/catalina.sh wurden folgende Zeilen hinzugefügt:
JAVA_HOME=/home/tomcat/java
CATALINA_PID=/home/tomcat/tomcat/tomcat.pid
CATALINA_HOME=/home/tomcat/tomcat

Und nachdem chmod 755 /home/tomcat/tomcat/bin/*.sh ausgeführt wurde, kann über /home/tomcat/tomcat/bin/startup.sh der Tomcat gestartet werden.

Möchte man direkt auf den Tomcat über den Port 8080 zugreifen, muss dieser zunächst in der Firewall freigeschaltet werden.
firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --reload

Damit der Tomcat beim neustart des Servers automatisch startet, wurde zunächst die Datei /etc/systemd/system/tomcat.service mit folgendem Inhalt angelegt.

# Starscript fuer tomcat
[Unit]
Description=Apache Tomcat
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/home/tomcat/tomcat/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target

Im Anschluss wurden folgende Zeilen auf der Kommandozeile ausgeführt:
chmod 755 /etc/systemd/system/tomcat.service
systemctl daemon-reload
systemctl enable tomcat

nginx Weiterleitung an den Tomcat

Damit nun die Anfragen vom nginx an den Tomcat weitergereicht werden, wurden in der Datei /etc/nginx/conf.d/ssl-seite2.conf folgende Zeilen hinzugefügt:

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

jk_mod unter centos

Als erstes die aktuelle Version des Apache Tomcat Connectors hier herunterladen und auf dem Server im Ordner /etc/httpd/conf ablegen.

Damit der das Modul beim starten des Apache2 mit geladen wird, müssen in der httpd.conf folgende Zeilen hinzugefügt werden:

LoadModule jk_module modules/mod_jk.so

JkWorkersFile conf.d/workers.properties

Damit nun alle Anfragen die an die Adresse www.itbasic.de gehen an den Tomcat weitergeleitet werden, muss in der vhost Konfiguration folgendes hinzugefügt werden.

JkMount /* worker1
JkMount /tomcat4/* worker1

Die zweite Zeile leitet nur Anfragen von der URL www.itbasic.de/tomcat4 an den tomcat weiter.
Mithilfe von JkUnMount werden Urls von der Weiterleitung ausgenommen.

Zusätzlich muss noch die Datei worker.properties angelegt werden

worker.list=worker1

worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1

Damit der Apache die Anfragen an den Tomcat weiterleiten kann, muss in der Server.xml (tomcat) der Connector Port mit angegeben werden.

<Connector port=“8009″ enableLookups=“false“ redirectPort=“8443″ protocol=“AJP/1.3″ />

ssl Zertifikat für Tomcat importieren

Wenn ein Tomcat über einen Mailserver Emails versenden soll, kann es Probleme geben wenn der Versand nur per SSL möglich ist.
Einer der Gründe kann sein, das es sich um ein selbst erstelltes SSL Zertifikat handelt. Das Problem kann gelöst werden indem das SSL Zertifikat importiert wird.

keytool -import -alias mailserver -file mailserver.crt -keystore /usr/java/jdk1.6.0_27/jre/lib/security/cacerts

-alias ist der Name unter dem das Zertifikat im keystore importiert wird
-file das Zertifikat des Mailservers
-keystore in der Datei werden die Zertifikate importiert

Zum importieren des Zertifikats wird das Kennwort changeit benötigt, bevor es endgültig importiert wird muss man noch zustimmen das dem Zertifikat vertraut wird.