mod_jk-Statusseite funktioniert nicht

mod_jk-Statusseite funktioniert nicht

Ich verwende Clustering in Tomcat 7 mit einem Apache-Server. Das funktioniert auch gut. Allerdings habe ich folgende Probleme:

1) Ich versuche, die Statusseite von mod_jk zu überwachen, aber es wird ein 404-Fehler angezeigt.

2) im Protokoll wird folgender Fehler angezeigt -

[Tue Dec 17 13:16:51.019 2013] [2236:140599476504544] [error] init_jk::mod_jk.c (3348): Initializing shm:/etc/httpd/logs/mod_jk.shm.2236 errno=13. Load balancing workers will not function properly.
[Tue Dec 17 13:16:51.019 2013] [2236:140599476504544] [info] init_jk::mod_jk.c (3365): mod_jk/1.2.37 initialized
[Tue Dec 17 13:16:51.041 2013] [2237:140599476504544] [error] init_jk::mod_jk.c (3348): Initializing shm:/etc/httpd/logs/mod_jk.shm.2237 errno=13. Load balancing workers will not function properly.
[Tue Dec 17 13:16:51.042 2013] [2237:140599476504544] [info] init_jk::mod_jk.c (3365): mod_jk/1.2.37 initialized

Hier ist die Datei worker.properties

worker.list=tomcatnode1,tomcatnode2,loadbalancer,statusmanager

worker.tomcatnode1.port=8009
worker.tomcatnode1.host=localhost
worker.tomcatnode1.type=ajp13
worker.tomcatnode1.lbfactor=100

worker.tomcatnode2.port=8010
worker.tomcatnode2.host=localhost
worker.tomcatnode2.type=ajp13
worker.tomcatnode2.lbfactor=100


#Load Balance Configuration
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=tomcatnode1, tomcatnode2
worker.loadbalancer.sticky_session=1

#worker.list=jkstatus
worker.statusmanager.type=status

Hier ist die Datei mod_jk.conf

LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
JkShmFile logs/mod_jk.shm
JkMount /IntellixWebApi/* loadbalancer
#JkMount /jkmanager/* jkstatus
#JkMount /jkmanager jkstatus

<Location /status/>
    JkMount statusmanager
    Order deny,allow
#   Deny from all
    Allow from 127.0.0.1
</Location>

Wenn ich auf IntellixWebApi zugreife, ist der Zugriff möglich. Aber wenn ich /status verwende, funktioniert es nicht.

Bitte vorschlagen.

Antwort1

Es gibt ein Problem beim Initialisieren des gemeinsam genutzten Speichers, der von den Workern benötigt wird.

Überprüfen Sie, ob das Verzeichnis /etc/httpd/logs/existiert und für den Benutzer, der die Tomcat-Instanz betreibt, beschreibbar ist. Wenn nicht, ändern Sie entweder die Berechtigungen für das Verzeichnis oder erstellen Sie ein separates Verzeichnis, in dem die SHM-Dateien gespeichert werden. (Ich würde Letzteres empfehlen, einfach weil es aus mehreren Gründen keine gute Idee ist, wichtige Statusinformationen am selben Ort wie Ihre Protokolle aufzubewahren.)

Wenn das Verzeichnis existiert und beschreibbar ist, überprüfen Sie, ob Sie SELinux aktiviert haben und ob es ggf. Berechtigungsprobleme gibt. Sie können jederzeit versuchen, es auf „permissiv“ einzustellen, um zu sehen, ob das Problem verschwindet. Wenn ja, ist es an der Zeit, die Berechtigungen zu korrigieren und es wieder zu aktivieren.

Antwort2

Nach langem Googeln gelang es mir, den Statusbildschirm von jk_manager aufzurufen. Zuerst habe ich SELINUX deaktiviert und dann nach dem Neustart des Systems Folgendes eingestellt: JkMount

JkMount /* loadbalancer
JkMount /IntellixWebApi/* loadbalancer
JkMount /jkmanager/* jkstatus

<Location /status/>
    JkMount statusmanager
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Location>

Das hat bei mir funktioniert.

Danke

verwandte Informationen