Internet Information Server の Tomcat コネクタが動作しない

Internet Information Server の Tomcat コネクタが動作しない

私はインターネットインフォメーションサーバーを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の設定を試みた

  1. isapiマニュアルの要求に従ってディレクトリへの権限を付与しました:

    icacls "%TOMCAT_HOME%\isapi" /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)M

    icacls "%TOMCAT_HOME%\isapi\isapi_redirect.dll" /grant "Everyone":RX

  2. 私は「jakarta」という名前の af**** 仮想ディレクトリ (3 回目か 4 回目) を作成し、それを後のディレクトリ (以下を参照) にポイントしました。仮想ディレクトリの「接続」プロパティは「アプリケーション ユーザー (パススルー認証)」として構成されています。

ここに画像の説明を入力してください

  1. ハンドラー マッピングは次のように構成されています。

ここに画像の説明を入力してください

アクセス要求制限は「なし」に設定されています。しかし、「実行」でも試してみましたが、何も起こりません。

  1. 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 側に表示されます)。

関連情報