前面に Apache、背面に Tomcat があるのに、SSL が機能しないのはなぜですか?

前面に Apache、背面に Tomcat があるのに、SSL が機能しないのはなぜですか?

私は Web サーバーとして Apache をセットアップしており、Tomcat は 経由で Apache に接続されているmod_jkため、ユーザーが Tomcat と対話することはありません。

Apache に SSL を設定し、 でアクセスできるようになりましたhttps://localhostが、 でアプリケーションにアクセスしようとするとエラーがhttps://localhost/app発生しますdirectory not found

問題は、通常の http にアクセスすると、問題なくアクセスできることです。http://localhost/app

この接続を機能させるには何を編集する必要がありますか?

  • AJPコネクタのコメントを外しましたserver.xml
  • 仮想ホストを追加しましたhttpd.conf

何が足りないのでしょうか?

答え1

http と https は、Apache によって異なる仮想サーバーとして扱われます。両方の仮想ホストでリバース プロキシを設定しましたか?

答え2

既存の設定をhttpからhttpsに複製する必要があります。httpコネクタがある場合はajpコネクタは必要ありません。

どのように設定されているかを確認します。おそらくプロキシ パスを実行するか、末尾にプロキシである P が付いた RewriteRule を使用します。

答え3

ワーカーの定義が間違っている可能性があります。workers.properties で作業のタイプを確認してください。ajp13 の場合は、Tomcat の ajp セクションを元の状態に戻します。mod_jk は通常、タイプとして ajp13 を使用します。

答え4

mod_jk を使用する場合は、Tomcat に AJP コネクタが必要です。

ほとんどの場合、ワーカーに構成上の問題がある場合、Apache は 500 エラー (サーバー エラー) を返します。404 が返された場合は、リクエストが Tomcat サーバーに渡されていない (または URL が Tomcat の観点から無効である) ことが原因です。Apache 構成 (443 ポート用) に JkMount が存在し、正しいことを確認してください。

mod_jk の問題をデバッグするには、mod_jk のデバッグ ログをオンにして、Apache ログを確認します。mod_jk 構成 (通常は jk.conf) に次の行を追加します。

Jkログファイル /var/log/apache2/mod_jk.log

JkLogLevel デバッグ

起動時にいくつかのログが表示され、各リクエストに関する興味深い詳細が表示されます。

私はApache2 + SSL + JBossでこのような設定をしました。その他の詳細と最適化のヒントについては、 運用環境で Apache サーバーの背後に J2EE アプリケーションをデプロイする

関連情報