Definir VirtualHost para serviço web Tomcat 8 no AWS EC2

Definir VirtualHost para serviço web Tomcat 8 no AWS EC2

Além do Apache padrão no AWS EC2 Linux, instalei o Tomcat 8 e implantei um webservice nele.

O URL atual (que funciona) éhttp://example.com:8080/MyService/api/generatePath

Quero encurtar isso com um subdomínio api.mydomain.com, para poder usar este URL:http://api.example.com/generatePath.

Isto é o que eu fiz no /etc/httpd/conf/httpd.conf, mas não funciona:

<VirtualHost *:80>
    ServerName api.example.com
    ProxyRequests Off
    ProxyPreserveHost On
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyPass / http://localhost:8080/MyService/api
    ProxyPassReverse / http://localhost:8080/MyService/api
</VirtualHost>

Responder1

Primeiro você habilitou o mod proxy no Apache? Em segundo lugar, tente remover ProxyPreserveHost On

Além disso, certifique-se de que a porta esteja abrindo; a maneira mais fácil de verificar é acessarhttp://www.yougetsignal.com/tools/open-ports/(Insira o endereço do site e a porta 80)

Espero que isto ajude

Responder2

(1) Para remover /MyService/parte do seu URL, renomeie o MyService.wararquivo para ROOT.ware copie-o para a pasta webapps usando sudo cp. Normalmente, espera-se que a instalação do Tomcat gere automaticamente um diretório ROOT na mesma pasta.

(2) Para remover o :8080, acesse o site via :80 que não está listado na barra de URL, usando o instalado que httpd.confvocê indicou. Edite as duas coisas a seguir para ficar assim.

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

<VirtualHost *:80>
    ServerName api.example.com

    ProxyRequests On
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/

    <Location "/">
            Order allow,deny
            Allow from all
    </Location>
</VirtualHost>

informação relacionada