Estou fazendo uma reconfiguração de caminho para definir e variável de ambiente que fará com que o mod_jk use um servidor JBoss específico. Funciona perfeitamente com qualquer um dos caminhos de aplicativos.
Quando eu tento nosso monitor servelet (um banco de dados simples consegue provar que a pilha está operacional), ele corresponde à reescrita, reescreve, define o env var, mas falha ao processar a URL pela segunda vez.
Por que o comportamento inconsistente da segunda viagem pelo mecanismo de reescrita?
O padrão é que se /workername/
for prefixado ao caminho, ele removerá, mas usará esse valor como JK_WORKER_NAME
para a montagem de mod_jk.
Exemplo de configuração:
SetHandler jakarta-servlet
SetEnv JK_WORKER_NAME mexico
RewriteEngine on
RewriteRule ^/(mexico[1-2])/(.*)$ /$2 [E=JK_WORKER_NAME:$1,L]
(trabalhadores mod_jk são nomeados mexico1 e mexico2)
Um hit para https://hostname/mexico2/public/gateway.sf
obtém uma reescrita e, em seguida, uma segunda passagem pelo mecanismo de reescrita, processada por mod_JK e passada para o servidor de aplicativos. Tudo bem, veja log (role para a direita para bons bits)
10.1.1.163 - - [26/Aug/2013:14:10:44 --0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde6fae0/initial] (2) init rewrite engine with requested uri /mexico2/public/gateway.sf
10.1.1.163 - - [26/Aug/2013:14:10:44 --0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde6fae0/initial] (3) applying pattern '.*' to uri '/mexico2/public/gateway.sf'
10.1.1.163 - - [26/Aug/2013:14:10:44 --0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde6fae0/initial] (4) RewriteCond: input='GET' pattern='^TRACE' => not-matched
10.1.1.163 - - [26/Aug/2013:14:10:44 --0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde6fae0/initial] (3) applying pattern '^/(mexico[1-2])/(.*)$' to uri '/mexico2/public/gateway.sf'
10.1.1.163 - - [26/Aug/2013:14:10:44 --0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde6fae0/initial] (2) rewrite '/mexico2/public/gateway.sf' -> '/public/gateway.sf'
10.1.1.163 - - [26/Aug/2013:14:10:44 --0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde6fae0/initial] (2) local path result: /public/gateway.sf
10.1.1.163 - - [26/Aug/2013:14:10:44 --0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde6fae0/initial] (2) prefixed with document_root to /data/publisher/webdav/images/notice/public/gateway.sf
10.1.1.163 - - [26/Aug/2013:14:10:44 --0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde6fae0/initial] (1) go-ahead with /data/publisher/webdav/images/notice/public/gateway.sf [OK]
10.1.1.163 - - [26/Aug/2013:14:10:44 --0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde84180/initial] (2) init rewrite engine with requested uri /public/gateway.sf
10.1.1.163 - - [26/Aug/2013:14:10:44 --0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde84180/initial] (3) applying pattern '.*' to uri '/public/gateway.sf'
10.1.1.163 - - [26/Aug/2013:14:10:44 --0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde84180/initial] (4) RewriteCond: input='GET' pattern='^TRACE' => not-matched
10.1.1.163 - - [26/Aug/2013:14:10:44 --0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde84180/initial] (3) applying pattern '^/(mexico[1-2])/(.*)$' to uri '/public/gateway.sf'
10.1.1.163 - - [26/Aug/2013:14:10:44 --0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde84180/initial] (1) pass through /public/gateway.sf
Um hit para https://hostname/mexico1/monitorme.mmm
também corresponde à condição e é reescrito, mas nunca recebe uma segunda passagem pelo mecanismo, e o apache tenta acessar esse caminho a partir da raiz do documento. Todos os hits são passados para o JBoss, não há documentos na raiz do doc. Assim eu recebo uma página não encontrada.
10.1.1.163 - - [26/Aug/2013:14:12:17 --0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde71af0/initial] (2) init rewrite engine with requested uri /mexico1/monitorme.mmm
10.1.1.163 - - [26/Aug/2013:14:12:17 --0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde71af0/initial] (3) applying pattern '.*' to uri '/mexico1/monitorme.mmm'
10.1.1.163 - - [26/Aug/2013:14:12:17 --0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde71af0/initial] (4) RewriteCond: input='GET' pattern='^TRACE' => not-matched
10.1.1.163 - - [26/Aug/2013:14:12:17 --0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde71af0/initial] (3) applying pattern '^/(mexico[1-2])/(.*)$' to uri '/mexico1/monitorme.mmm'
10.1.1.163 - - [26/Aug/2013:14:12:17 --0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde71af0/initial] (2) rewrite '/mexico1/monitorme.mmm' -> '/monitorme.mmm'
10.1.1.163 - - [26/Aug/2013:14:12:17 --0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde71af0/initial] (2) local path result: /monitorme.mmm
10.1.1.163 - - [26/Aug/2013:14:12:17 --0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde71af0/initial] (2) prefixed with document_root to /data/publisher/webdav/images/notice/monitorme.mmm
10.1.1.163 - - [26/Aug/2013:14:12:17 --0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde71af0/initial] (1) go-ahead with /data/publisher/webdav/images/notice/monitorme.mmm [OK]