2011-02-25 9 views
5

Estoy tratando de crear un host virtual, dev.company.com, que se dirige a diferentes aplicaciones dependiendo de lo que viene después del dominio. En concreto, quiero:Uso de múltiples directivas ServerPath dentro de un VirtualHost con nombre

estoy utilizando la siguiente configuración:

<VirtualHost *:80> 
    ServerName dev.company.com 

    ServerPath /jenkins 
    ProxyPass /jenkins http://easyrider:8080/jenkins 
    ProxyPassReverse /jenkins http://easyrider:8080/jenkins 

    ServerPath /clover 
    Redirect /clover http://dev.company.com/jenkins/job/proj-master-clover/clover/ 

    ServerPath /apps 
    DocumentRoot "/usr/local/sites/developers" 
    <Directory "/usr/local/sites/developers"> 
     DirectoryIndex index.html 
     Options Indexes MultiViews 
    </Directory> 

    ServerPath/
    ProxyPass/http://tomcat_server:8080/ 
    ProxyPassReverse/http://tomcat_server:8080/ 
</VirtualHost> 

http://dev.company.com/jenkins funciona bien, pero/apps y/clover siempre redirigen al servidor Tomcat. ¿Es la forma correcta de hacer esto?

Respuesta

8

Por lo tanto, el uso de ServerPath es principalmente para navegadores heredados. El truco, sin embargo, para conseguir un alias y una redirección de trabajo en un host virtual en el que está utilizando el cajón de sastre:

ProxyPass/<url> 

es decir ProxyPass ignorar ciertos caminos: ProxyPass /path ! notación

Así que mi último VirtualHost se ve así:

<VirtualHost> 
    ServerName dev.company.com 

    ProxyPass /jenkins http://easyrider:8080/jenkins 
    ProxyPassReverse /jenkins http://easyrider:8080/jenkins 

    # Tells ProxyPass to ignore these paths as they'll be handled by Alias and Redirect 
    ProxyPass /clover ! 
    ProxyPass /apps !   

    Redirect /clover http://dev.company.com/jenkins/job/proj-master-clover/clover/ 

    Alias /apps "/usr/local/sites/developers" 
    <Directory "/usr/local/sites/developers"> 
     DirectoryIndex index.html 
     Options Indexes MultiViews 
    </Directory> 


    ProxyPass/http://tomcat_server:8080/ 
    ProxyPassReverse/http://tomcat_server:8080/ 
</VirtualHost> 

y las URL son:

http://dev.company.com/jenkins* - will proxy to jenkins http://dev.company.com/jenkins 
http://dev.company.com/apps - will proxy to http://dev.company.com/apps/ 
http://dev.company.com/clover - will redirect to http://dev.company.com/jenkins/job/proj-master-clover/clover/ 
and everything else will go to tomcat at tomcat_server:8080 
Cuestiones relacionadas