Ich versuche, einen Internet Information Server für die Arbeit mit Tomcat zu konfigurieren. Nachdem ich die Schritte inDie Webseitees funktioniert nicht.
Das Schlimmste ist, dass es keine Möglichkeit gibt, das Problem zu dokumentieren oder festzustellen, wo es liegt. Wie auf der Website zu sehen ist, sind viele Schritte zu konfigurieren und die Ausgabe sollte „ok“ sein, aber es gibt keine Möglichkeit, das Problem zu diagnostizieren.
IIS
Ich habe einen Windows Server 2012 R2 64 Bit mit dem IIS, der bei der Installation mitgeliefert wird. Erste Frage: Ist es 32 Bit oder 64 Bit??? Für den Rest dieser Frage gehe ich davon aus, dass es 64 Bit ist.
Kater
Apache Tomcat 10.0.18. Läuft mit Java Version 1.8.0_161. Der Server ist so konfiguriert, dass er als Dienst mit Anmeldung als „Lokales Systemkonto“ ausgeführt wird. Nehmen wir für dieses Beispiel an, dass er in installiert ist %TOMCAT_HOME%
.
AJP-Anschluss wie folgt konfiguriert:
<Connector protocol="AJP/1.3"
address="0.0.0.0"
port="8009"
secretRequired="false"
xpoweredBy="true"/>
Und bestätigt, dass es funktioniert:
C:\>netstat -ab | find "8009"
TCP 0.0.0.0:8009 THIS-SERVER:0 LISTENING
TCP [::]:8009 THIS-SERVER:0 LISTENING
ISAPI-Redirector für Microsoft IIS
Heruntergeladenvon hier. 64-Bit-Version. Installiert unter %TOMCAT_HOME%\isapi
. Konfigurationsdateien sind:
ìsapi_redirect.properties
:
#
# isapi_redirect.properties
#
extension_uri=/jakarta/isapi_redirect.dll
log_file=[server-home-removed]\\isapi\\isapi_redirect.log
log_level=debug
worker_file=[server-home-removed]\\isapi\\workers.properties
worker_mount_file=[server-home-removed]\\isapi\\uriworkermap.properties
workers.properties
#
# workers.properties
#
worker.list=tomcat01
worker.tomcat01.type=ajp13
worker.tomcat01.host=localhost
worker.tomcat01.port=8009
uriworkermap.properties
#
# uriworkermap.properties
#
/examples/*=tomcat01
/jakarta/*=tomcat01
/pwdReset/*=tomcat01
Konfiguration des IIS versucht
Ich habe die Berechtigung für das
isapi
Verzeichnis wie im Handbuch gefordert erteilt:icacls "%TOMCAT_HOME%\isapi" /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)M
icacls "%TOMCAT_HOME%\isapi\isapi_redirect.dll" /grant "Jeder":RX
Ich habe ein virtuelles Verzeichnis namens „jakarta“ erstellt (das ist das dritte oder vierte Mal, dass ich das mache) und es auf das spätere Verzeichnis verweisen lassen (siehe unten). Das virtuelle Verzeichnis hat die Eigenschaft „Verbinden als“ als „Anwendungsbenutzer (Passthrough-Authentifizierung)“ konfiguriert:
- Die Handlerzuordnung ist wie folgt konfiguriert:
Zugriffsanforderungsbeschränkungen sind auf „keine“ konfiguriert. Ich habe es aber auch mit „Ausführen“ versucht und nichts passiert.
- ISAPI-Filterkonfiguration:
Das Problem istdass anscheinend alles in Ordnung ist, die Ausgabe, die ich beim Versuch, eine Verbindung zum virtuellen Pfad herzustellen, erhalte, ein 500-Fehler ist, wenn ich den 32-Bit-ISAPI-Filter verwende, oder ein 403-Fehler, wenn ich den 64-Bit-ISAPI-Filter verwende. Was mache ich falsch??? Und was noch wichtiger ist, gibt es eine Möglichkeit, zu diagnostizieren, ob die verschiedenen Teile dieses Chaos korrekt sind, zu prüfen, ob der ISAPI-Filter funktioniert, der AJP-Anschluss von Tomcat funktioniert usw.???
Antwort1
Gelöst: wenn Sie lesendie aktualisierte Referenz des KonnektorsSie werden mehrere Dinge finden:
Beachten Sie, dass in einer 64-Bit-Umgebung - zumindest für IIS 7 -Im verwendeten IIS-Anwendungspool sollte „32-Bit-Anwendungen aktivieren“ auf „Falsch“ eingestellt sein.. Andernfalls wird der Redirector nicht aufgerufen und gibt einen HTTP-Code 404 zurück. Wenn Sie meinen, die 32-Bit-Version von isapi_redirect.dll würde den Job stattdessen erledigen, erhalten Sie einen HTTP-Code 500, da die Bibliothek nicht in einen 64-Bit-IIS geladen werden kann.
Und ich habe die Registrierungsinformationen vor dem erneuten Test vervollständigt. Jetzt funktioniert es (Anfragen erscheinen auf der Tomcat-Seite).