Apache VirtualHost Proxy con un subdirectorio


13

Actualmente, tenemos un servidor IIS como nuestro servidor web principal. Estamos implementando un servidor Apache en su lugar, pero aún necesitamos tener accesible el servidor IIS. Por lo general, esto es algo simple, porque Apache2 puede representar un subdominio en este servidor.

Sin embargo, nuestro problema es el siguiente: estamos usando dotnetCharting en el servidor IIS y las licencias están vinculadas al nombre de dominio. Para que dotnetCharting funcione, se deberá comprar otra licencia.

Mi pregunta es, ¿puede Apache2 proxy un subdirectorio? Por ejemplo, ¿puede 'www.example.com/subdir' apuntar al servidor IIS? Parece que no debería ser imposible, pero parece que no puedo encontrar una solución para esto.

Respuestas:


19

Seguro. Pero ten cuidado; Muchas aplicaciones web no están bien diseñadas para cambiar su ruta URL. ¿La aplicación se utiliza actualmente en un subdirectorio?

# You'll probably want this to maintain the host mapping in IIS
ProxyPreserveHost On
# Swap in the IP address or internal host name of your IIS server:
ProxyPass /subdir/ http://192.0.2.100/subdir/

O, si está alterando la ruta de la URL, tenga en cuenta que muchas aplicaciones tendrán problemas con esto, debido a las rutas absolutas de los recursos (CSS, JavaScript, imágenes):

ProxyPass /subdir/ http://192.0.2.100/
ProxyPassReverse /subdir/ http://192.0.2.100/

¡Perfecto! Eso hizo el truco en mi entorno de prueba. En este momento, internamente, puede ingresar la dirección IP del servidor y usar nuestro proxy interno para llegar al servidor, y todo (excepto el dotnetcharting) funciona a la perfección, por lo que no espero que la aplicación falle cuando la proxy con este método. ¡Muy apreciado!
SuperJer

1
Tuve que dejar de lado el final /de subdir(así:) /subdir. De lo contrario, si se domain.com/subdirproduce un error de aplicación (500). Proxy correctamente si se incluye la barra inclinada ( domain.com/subdir/), pero ese no es el efecto que estaba buscando.
OneHoopyFrood

3

Seguro.

  1. Habilitar mod_proxy mod_proxy_http
  2. configure las siguientes instrucciones en su Apache VHost

    ProxyPass /subdir http://iis.server/.../
    ProxyPassReverse /subdir http://iis.server/.../
    

Tenga en cuenta que la "/" final es obligatoria.

Para más información: http://httpd.apache.org/docs/2.2/mod/mod_proxy.html


0

la barra final al final NO es obligatoria. Lo tenía configurado así

ProxyPass /dir http://exmpale.com/dir/ 

ProxyPassReverse /dir http://exmpale.com/dir/ 

y el nivel superior funcionaba pero todo en subdirecciones debajo del principal no.

Lo cambié a esto y todo funcionó.

Gracias por la desinformación !!!

ProxyPass /dir http://exmpale.com/dir

ProxyPassReverse /dir http://exmpale.com/dir

1
¿Por qué la gente menosprecia esto? Fue exactamente el problema que tuve. Tienes que terminar ambas urls con una barra diagonal o dejar ambas sin una barra diagonal ... al menos para mí ayudó cuando se trataba de subdirectorios;)
Jannik
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.