mod_jk jkworkersfile for conector apache tomcat mod-rewrite mod-jk

jkworkersfile - mod_jk so for apache 2.4 6



Cómo usar mod_rewrite con Apache-> mod_jk-> configuración de tomcat? (1)

Relacionado con algunas de mis preguntas anteriores.

Ahora tengo una configuración que me gusta bastante;

Apache httpd escuchando en el puerto 80 aceptando conexiones http y https. Varias instancias de Tomcat que se ejecutan en varios puertos AJP.

Mod_Jk está enviando diferentes solicitudes de URL a diferentes instancias de tomcat;

www.mydomain.com/demo -> tomcat:8101 www.mydomain.com/test -> tomcat:8102 www.mydomain.com/ -> tomcat:8100

Esto se logra con la siguiente configuración en httpd.conf (o subarchivos incluidos);

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>

Y todo esto funciona genial. También tengo la configuración de SSL y la ejecución de conexiones https usando una etiqueta VirtualHost similar;

<VirtualHost _default_:443> JkMount /demo* demoTomcat JkMount /test* testTomcat JkMount /* rootTomcat ... SSL Stuff follows ....

Lo que ahora estoy teniendo problemas es que mi certificado SSL es solo para www.midominio.com y no para mydominio.com.

Me han aconsejado que use las siguientes llamadas a 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]

Los coloqué antes y después de las reglas de mod_jk en el archivo httpd.conf. Al principio, Apache se quejaba de que RewriteEngine era un comando no válido, pero desapareció cuando recordé el comando LoadModule primero :) Ahora Apache se reinicia muy bien, el servidor inicia y acepta las solicitudes y todo funciona de la forma en que lo hace ... pero eso es simplemente, estos comandos mod_rewrite parecen no tener ningún efecto?

Escribo http://mydomain.com en el navegador y acabo de obtener mi sitio web como de costumbre. La url no parece cambiar a http://www.mydomain.com y cuando comienzo a acceder a las áreas seguras recibo advertencias de que mydomain.com NO está seguro y me está www.mydomain.com de algún otro sitio web llamado www.mydomain.com (por qué esto es un problema y no puede usar un poco de lógica para darse cuenta de que es el mismo sitio, ¡no lo sé!).

¿Estoy colocando las reglas de mod_rewrite en el lugar equivocado? He leído que debería funcionar, las reescrituras deberían cambiar la URL a www. y luego pasar a las cosas mod_jk para nada más?


Coloque este fragmento justo después de la última línea jkmount en su configuración de Apache:

<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} =on RewriteCond %{HTTP_HOST} !^www/.example/.name$ [NC] RewriteRule ^ https://www.example.name%{REQUEST_URI} [NE,L,R=301] </IfModule>

Lo que esta regla está haciendo es IF esquema es https y su www.mydaomain.com http NO es www.mydaomain.com ENTONCES redirigir solicitud https://example.com/foo a https://www.example.com/foo con un estado de 301 http .