私の以前の質問のいくつかに関連しています。
これで、非常に気に入ったセットアップができました。
httpおよびhttps接続を受け入れるポート80でリッスンしているApachehttpd。複数のAJPポートで実行されている複数のTomcatインスタンス。
Mod_JkはさまざまなURLリクエストをさまざまなTomcatインスタンスに送信しています。
www.mydomain.com/demo -> tomcat:8101
www.mydomain.com/test -> tomcat:8102
www.mydomain.com/ -> tomcat:8100
これは、httpd.conf(または含まれているサブファイル)の次の構成で実現されます。
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
NameVirtualHost *:80
<VirtualHost *:80>
JkMount /demo* demoTomcat (workers.properties not shown)
JkMount /test* testTomcat
JkMount /* rootTomcat
</VirtualHost>
そして、これはすべてうまくいきます。同様のVirtualHostタグを使用して、SSLをセットアップしてhttps接続を実行しています。
<VirtualHost _default_:443>
JkMount /demo* demoTomcat
JkMount /test* testTomcat
JkMount /* rootTomcat
... SSL Stuff follows ....
私が今問題を抱えているのは、私のSSL証明書がwww.mydomain.com専用であり、mydomain.com用ではないということです。
以下のmod_rewrite呼び出しを使用するようにアドバイスされています。
Options +FollowSymlinks
LoadModule rewrite_module modules/mod_rewrite.so
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.|$) [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [PT,L]
これらは、mod_jkルールの前後にhttpd.confファイルに配置しました。Apacheは最初、RewriteEngineが無効なコマンドであると不平を言っていましたが、LoadModuleコマンドを最初に思い出したときに消えました:)これで、Apacheは正常に再起動し、サーバーが起動して要求を受け入れ、すべてが以前と同じように機能します...しかしそれはそれだけで、これらのmod_rewriteコマンドは効果がないように見えますか?
ブラウザに入力http://mydomain.com
すると、通常どおりWebサイトが表示されます。URLがに変更されていないようでhttp://www.mydomain.com
、セキュリティで保護された領域にアクセスし始めると、セキュリティで保護されていmydomain.com
ないという警告が表示され、他のWebサイトから証明書が提供されますwww.mydomain.com
(これがまったく問題であり、単に使用できない理由同じサイトを実現するためのいくつかのロジック、私にはわかりません!)。
mod_rewriteルールを間違った場所に配置していますか?私はそれが機能するはずだと読みました、書き直しはURLをwwwに変更するはずです。その後、mod_jkのものに渡してさらに何かをしますか?