No meu aplicativo, estou criando um cenário padrão em que o aplicativo da web Java é implantado no JBoss com o proxy do apache adiantado. O webapp é acessível a partir do contexto / esp para que o URL direto seja (mas eu desativei o HTTP para o Jboss, apenas para o AJP):
http://1.2.3.4:8080/esp
Agora, criei subdomínio e tentei mover o proxy pelo contexto raiz do apache. Então eu gostaria de apache para proxy:
https://mysubdomain.domain.com -> ajp -> Jboss /esp context app
Acredito que estou perdendo algo óbvio com minha configuração, pois somente o contexto do aplicativo raiz está acessível, e o restante do URL tem o contexto dulicated que termina com 404. Por exemplo, a solicitação é intermediada por proxy assim:
https://mysubdomain.domain.com/css/somecss.css -> ajp -> /esp/esp/css/somecss.css
A configuração do Apache é assim:
<VirtualHost 1.2.3.4:80>
ServerName mysubdomain.domain.com
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost 1.2.3.4:443>
ServerName mysubdomain.domain.com
ProxyPass / ajp://localhost:8009/esp/
ProxyPassReverse / ajp://localhost:8009/esp/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/mantis>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/esp.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
SSLEngine on
SSLCertificateFile /var/keys/server.crt
SSLCertificateKeyFile /var/keys/server.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
Além disso, quando adiciono proxies adicionais, tudo funciona:
ProxyPass /esp/ ajp://localhost:8009/esp/
ProxyPassReverse /esp/ ajp://localhost:8009/esp/
Só que o aplicativo pode ser acessado no apache em ambos os contextos: /
e /esp
, enquanto eu quero apenas o root. Como posso consertar isso?