私は 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 アプリケーションをデプロイする