Proxy Reverso Apache Server, PhpMyAdmin e Tomcat

1 resposta
java
S

Para hospedar um aplicativo java (JPA e Hibernate) que seve como back-end web para meu aplicativo Android, contratei um VPS(Ubuntu 14.04) no DigitalOcean. Segui os tutoriais de lá e fui capaz de instalar o LAMP, phpMyAdmin e o Tomcat 8. Tudo está funcionando bem.

Como uso basic authentication em meu serviço RESTFUL encarregado de fazer meu aplicativo android ‘puxar’ dados o aplicativo java web, vi que é necessário que as requisições sejam feitas sob HTTPS (ssl). Partindo daí, foi na goDaddy e registrei um domínio (vou chama-lo de meudominio.com) e contratei um certificado SSL.

Com o meu VPS configurado eu consigo tranquilamente acessar meus recurso, por exemplo :

Mas como eu precisava rodar algumas coisas através de HTTPS, pesquisei mais um pouco e achei coisas sobre Reverse Proxy do Apache. Como estou no linux (Ubuntu 14.04), fui na pasta etc/apache2/sites-available e criei um arquivo meudominio.com-ssl.conf com o seguinte conteudo:

<VirtualHost *:443>`
ServerAdmin [email removido]
ServerName meudominio.com
ServerAlias meudominio.com
DocumentRoot /var/www/meudominio.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

SSLEngine on
SSLCertificateFile /home/teste/ssl/meudominio.com.crt
SSLCertificateKeyFile /home/teste/ssl/meudominio.com.key
SSLCertificateChainFile /home/teste/ssl/intermediate.crt

ProxyRequests Off
ProxyPreserveHost On

tomcat

ProxyPass / ajp://meudominio.com:8009/
ProxyPassReverse / ajp://meudominio.com:8009/

ProxyPassReverseCookiePath / /

</VirtualHost>
`

Também fui em meu arquivo server.xml do Tomcat e descometei a linha
<Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

Depois dessas alterações, o comportamento ficou o seguinte :

  • https://meudominio.com carrega a home do Tomcat 8, e não mais a pagina de teste contida em var/www/meudominio.com, isso só acontece se eu acessar o mesmo endereço sem o https (ou seja, http://)
  • https://meudominio.com/phpmyadmin, não funciona. O phpmyadmin só é acessível sem o uso do https (novamente via http://)

Depois de toda essa explicação, eu gostaria que fosse possivel acessar os meus serviços da seguinte form, usando o reverse proxy:

Algum tem alguma ideia de como fazer esta configuração ?

1 Resposta

R

O problema está neste ponto, pois estas direcionando tudo que vem da raiz / para o tomcat.

O correto seria direcionar apenas a aplicação backend, tipo “ProxyPass /meu-api ajp://meu domínio.com:8009/meu-api

Criado 23 de março de 2016
Ultima resposta 24 de mar. de 2016
Respostas 1
Participantes 2