В связи с некоторыми из моих предыдущих вопросов.
Теперь у меня есть настройка, которая мне очень нравится;
Apache httpd прослушивает порт 80, принимая соединения http и https.Несколько экземпляров Tomcat, работающих на нескольких портах AJP.
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>
И все это прекрасно работает.У меня также есть настройка SSL и запуск для соединений https с использованием аналогичного тега VirtualHost;
<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
в браузере, и я просто получаю свой сайт в обычном режиме.URL-адрес не меняется на http://www.mydomain.com
, и когда я начинаю получать доступ к защищенным областям, я получаю предупреждения о том, что mydomain.com
НЕ защищен и предоставляет мне сертификат с другого веб-сайта под названием www.mydomain.com
(почему это проблемавообще, и он не может просто использовать некоторую логику для реализации своего сайта, я не знаю!).
Я помещаю правила mod_rewrite в неправильное место?Я читал, что это должно работать, переписывает должен изменить URL на www.а затем перейти к материалу mod_jk для чего-нибудь еще?