Además del Apache predeterminado en AWS EC2 Linux, instalé Tomcat 8 e implementé un servicio web en él.
La URL actual (que funciona) eshttp://ejemplo.com:8080/MyService/api/generatePath
Quiero acortar esto con un subdominio api.midominio.com, para poder usar esta URL:http://api.example.com/generatePath.
Esto es lo que he hecho en /etc/httpd/conf/httpd.conf
, pero no 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>
Respuesta1
Primero, ¿ha habilitado el proxy mod en Apache? En segundo lugar intenta eliminar ProxyPreserveHost On
Además, asegúrese de que el puerto esté abierto; La forma más sencilla de comprobarlo es ir ahttp://www.yougetsignal.com/tools/open-ports/(Ingrese la dirección del sitio web y el puerto 80)
Espero que esto ayude
Respuesta2
(1) Para eliminar /MyService/
parte de su URL, cambie el nombre de su MyService.war
archivo ROOT.war
y cópielo en su carpeta de aplicaciones web usando sudo cp
. Normalmente, se espera que la instalación de Tomcat genere automáticamente un directorio RAÍZ en la misma carpeta.
(2) Para eliminar :8080, acceda al sitio a través de :80, que no aparece en la barra de URL, utilizando la instalación httpd.conf
que indicó. Edite las siguientes dos cosas para que se vean así.
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>