
Utilizo Apache para servir varios sitios al mundo en mi servidor doméstico en el puerto 443 usando un certificado SSL. Anoche instalé un binario de Linux que sirve a un sitio solo en un puerto definido a través de su archivo de configuración. No me es posible hacer que Apache sirva el sitio directamente.
Entonces este sitio está alojado enhttp://127.0.0.1:8081/pero me gustaría ocultarlo detrás de Apache sobre 443 para poder acceder a él a través dehttps://myserver.duckdns.org/webapp/
He probado esto hasta ahora en el archivo de configuración de mi sitio pero no ha funcionado:
ProxyRequests off
<Proxy *>
allow from all
</Proxy>
RewriteEngine On
RewriteRule ^/(.*) /webapp/$1 [P]
<Location /webapp/>
ProxyPass http://127.0.0.1:8081/
ProxyPassReverse http://127.0.0.1:8081/
</Location>
¿Alguna idea de cómo puedo hacer esto?
Pensé que podría hacer esto usando ProxyPass y RewriteRules pero parece que no puedo hacerlo funcionar correctamente.
Muchas gracias de antemano!
Respuesta1
Sus reglas de reescritura a) tienen el objetivo incorrecto y 2) son redundantes.
RewriteRule with [P]
está destinado a ser utilizado como unalternativaa ProxyPass, no junto con él. El destino de reescritura de una regla [P] sería la URL de la aplicación web remota, no una local. Por ejemplo, podrías usar esto:
RewriteRule ^/webapp/(.*) http://127.0.0.1:8081/$1 [P]
oeste:
ProxyPass /webapp/ http://127.0.0.1:8081/
oeste:
<Location /webapp/>
ProxyPass http://127.0.0.1:8081/
</Location>
(Nota: la documentación de Apache recomienda utilizar ProxyPass siempre que sea posible).
Su <Proxy *>
bloqueo también es innecesario, porque sólo se aplica aadelanteproxy, donde el cliente especifica el destino del proxy (que usted ha deshabilitado).