私はインターネットインフォメーションサーバーをTomcatで動作するように設定しようとしており、ウェブサイトそれは動作しません。
さらに最悪なのは、問題がどこにあるのかを文書化したり認識したりする方法がないことです。Web サイトに記載されているように、設定する手順は多数あり、出力は「正常」であるはずですが、問題がどこにあるのかを診断する方法がありません。
IIS
私は、インストール時に IIS が付属する Windows Server 2012 R2 64 ビットを使用しています。最初の質問は、32 ビットですか、それとも 64 ビットですか? この質問の残りの部分では、64 ビットであると仮定します。
トムキャット
Apache tomcat 10.0.18。Java バージョン 1.8.0_161 で実行します。サーバーは、「ローカル システム アカウント」としてログオンしてサービスとして実行するように構成されています。この例では、が にインストールされているものとします%TOMCAT_HOME%
。
AJP コネクタは次のように構成されています。
<Connector protocol="AJP/1.3"
address="0.0.0.0"
port="8009"
secretRequired="false"
xpoweredBy="true"/>
そしてそれが機能していることを確認しました:
C:\>netstat -ab | find "8009"
TCP 0.0.0.0:8009 THIS-SERVER:0 LISTENING
TCP [::]:8009 THIS-SERVER:0 LISTENING
Microsoft IIS 用の ISAPI リダイレクタ
ダウンロード済みここから. 64 ビット バージョン。 にインストールされます%TOMCAT_HOME%\isapi
。 構成ファイルは次のとおりです。
ì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
IISの設定を試みた
isapi
マニュアルの要求に従ってディレクトリへの権限を付与しました:icacls "%TOMCAT_HOME%\isapi" /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)M
icacls "%TOMCAT_HOME%\isapi\isapi_redirect.dll" /grant "Everyone":RX
私は「jakarta」という名前の af**** 仮想ディレクトリ (3 回目か 4 回目) を作成し、それを後のディレクトリ (以下を参照) にポイントしました。仮想ディレクトリの「接続」プロパティは「アプリケーション ユーザー (パススルー認証)」として構成されています。
- ハンドラー マッピングは次のように構成されています。
アクセス要求制限は「なし」に設定されています。しかし、「実行」でも試してみましたが、何も起こりません。
- ISAPI フィルター設定:
問題はどうやらすべて正常のようですが、仮想パスに接続しようとしたときに得られた出力は、32 ビットの ISAPI フィルターを使用すると 500 エラー、64 ビットの ISAPI フィルターを使用すると 403 エラーです。何が間違っているのでしょうか??? そして、さらに重要なのは、この混乱のさまざまな部分が正しいことを診断し、ISAPI フィルターが機能しているかどうか、Tomcat の AJP コネクタが機能しているかどうかなどをチェックする方法があるのでしょうか???
答え1
解決済み: 読んだらコネクタの更新されたリファレンスいくつかのことが分かります:
64ビット環境では、少なくともIIS 7では、使用される IIS アプリケーション プールでは、「32 ビット アプリケーションを有効にする」が「False」に設定されている必要があります。そうでない場合、リダイレクタは呼び出されず、http コード 404 を返します。代わりに 32 ビット バージョンの isapi_redirect.dll が機能すると思われる場合は、ライブラリが 64 ビット IIS にロードできないため、http コード 500 が返されます。
そして、再度テストする前にレジストリ情報を完了しました。これで動作しています (リクエストが Tomcat 側に表示されます)。