apache2 - Apache Port Proxy
virtual host apache windows (2)
Tengo un servidor que no es de Apache y que escucha el puerto 8001 y el puerto de escucha de Apache 80. Quiero que un determinado servidor virtual sea atendido por el servidor que no es de Apache a través del puerto 80.
Ejemplo:
<VirtualHost *:80>
Servername example.com
# Forward this on to the server on port 8001
</VirtualHost>
Pensé que podría hacer esto con mod_proxy y ProxyPass con algo como esto.
ProxyPass * http://www.example.com:8001/
Pero eso no funciona.
ProxyPass * http://www.example.com:8001/
La estrella solo es valida en un bloque. Barra diagonal es lo que quieres.
ProxyPass / http://www.example.com:8001/
ProxyPassReverse / http://www.example.com:8001/
El proxy inverso garantiza que las redirecciones enviadas por su servidor del puerto 8001 se ajusten al nombre canónico de su proxy.
El manual de apache tiene algunos ejemplos. http://httpd.apache.org/docs/2.0/mod/mod_proxy.html
Tengo un sitio alojado por apache en el puerto 80. También tengo un servidor web de Python escuchando en el puerto 8880, al que se necesitaba acceder a través de http://[mydomainname]/something . Usando la respuesta de txyoji, lo puse en funcionamiento simplemente agregando un pase de proxy a mi definición de host virtual, de esta manera:
ProxyPass /something http://mydomainname:8880/something
ProxyPassReverse /something http://mydomainname:8880/something
ACTUALIZAR
Dependiendo de su configuración, una forma aún mejor de hacerlo es configurar un pase de proxy para un puerto en "localhost". Creo que está un poco más claro lo que estás haciendo, además de más portátil. Junto con esto, ¡ni siquiera tiene que abrir el firewall a ese puerto! Puede pasar el proxy localmente a cualquier puerto, por lo que no hay razón para exponerlo al mundo exterior si no tiene que hacerlo. Envíe todo a través del puerto 80 y haga que Apache siempre se "corra por delante". Entonces, puedes preocuparte por la seguridad de eso.
ProxyPass /something http://localhost:8880/something
ProxyPassReverse /something http://localhost:8880/something