Apache mod_jk substituindo regras mod_rewrite


1

Temos uma configuração do Apache 2.2 um pouco complexa na frente de uma instância do Tomcat 6.0. O aplicativo principal do Tomcat está implantado em:

/opt/tomcat/webapps/ROOT

Mas também temos conteúdo estático que atualizamos semi-regularmente. Não queríamos forçar uma nova compilação e implantação do aplicativo da web, que é armazenado separadamente em pastas como:

/opt/tomcat/webapps/css
/opt/tomcat/webapps/foo
/opt/tomcat/webapps/bar

Para lidar com isso no Apache, usamos mod_rewrite e as regras são parecidas com as seguintes:

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^/css/(.*)$ - [L]

RewriteCond ROOT/%{REQUEST_FILENAME} -f
RewriteRule ^/css/(.*)$ ROOT/$1 [L]

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)\.(jpg|png|html|js)$ - [L]

RewriteCond ROOT/%{REQUEST_FILENAME} -f
RewriteRule ^(.*)\.(jpg|png|html|js)$ - [L]

RewriteRule ^/(.*)$ http://localhost:8080/$1 [P,L]
ProxyPassReverse / http://localhost:8080/

Agora acho que posso começar a usar o mod_jk e tenho duas perguntas:

  1. Vale a pena usar o mod_jk? Não preciso de balanceamento de carga.
  2. É ainda possível lidar com os casos descritos em que o conteúdo estático é referenciado como " http://www.example.com/css/foo.css ", mas não sabemos se ele está localizado no aplicativo da Web Tomcat ou em uma das pastas estáticas.

1
Por que você acha que pode querer usar o mod_jk? Vale a pena usar mod_jk?
feijão

Respostas:


1

Por que você está pensando em usar o mod_jk?

Se é para usar a comunicação ajp, para acelerar a transferência para o tomcat, por que não olhar para mod_proxy_ajp?

Você acabou de alterar a regra de reedição do tomcat para: -

RewriteRule ^/(.*)$ ajp://localhost:8080/$1 [P,L]

Boa sugestão, mas não funcionará se você estiver balanceando a carga entre 2 ou mais instâncias do JBoss, já que a porta AJP precisa ser balanceada entre os servidores.
21411 djangofan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.