Apache HTTP Server

Apache HTTP Server est un des serveurs WEB les plus utilisés. Il permet facilement d’exposer des URLs via HTTP(s).

Cette section décrit quelques configurations types à adapter en fonction du contexte.

Configuration minimale

<VirtualHost *:80>
	ServerName www.flowerdocs.com                                                           
	ServerAlias flowerdocs.com *.flowerdocs.com                                             
	                                                                                                                                                                                      
	<Location /gui >                                                         
	    ProxyPass http://localhost:8080/gui
	    ProxyPassReverse http://localhost:8080/gui
	</Location>
	                                                                                        
	<Location /flower-docs-arender >
	    ProxyPass http://localhost:8080/flower-docs-arender
	    ProxyPassReverse http://localhost:8080/flower-docs-arender
	</Location>
	
	<Location /core >
	    ProxyPass http://localhost:8081/core
	    ProxyPassReverse http://localhost:8081/core
	</Location>
	                                                                                        
	ErrorLog ${APACHE_LOG_DIR}/flower-error.log
	CustomLog ${APACHE_LOG_DIR}/flower-access.log combined
</VirtualHost>

Ré-écriture

Dans le cas où le chemin d’accès à Flower change, il est nécessaire de modifier certaines en-têtes HTTP pour la GUI.

Pour cela, il est nécessaire de rajouter les directives suivantes :

	<Location /ui >
	    Header edit Set-Cookie "^(.*; [p|P]ath=)(.*)" "$1/ui"                          
	    RequestHeader edit X-GWT-Module-Base ^(.*)/gui/(.*)$ $1/ui/$2
    </Location>                  

Load balancing

Apache HTTP Server permet de mettre en place facilement un load balancing applicatif.

Dans l’exemple ci-dessous, un équilibrage de type roundrobin est mis en place pour les Core et un avec affinité de session pour les GUI.

<VirtualHost *:80>
	Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
	
	<Proxy "balancer://core-cluster">
	    BalancerMember "http://192.168.1.50:8080/core"
	    BalancerMember "http://192.168.1.51:8080/core"
	</Proxy>
	ProxyPass        "/core" "balancer://core-cluster"
	ProxyPassReverse "/core" "balancer://core-cluster"
	
	
	<Proxy "balancer://gui-cluster">
	    BalancerMember "http://192.168.1.52:8080/gui" route=1
	    BalancerMember "http://192.168.1.53:8080/gui" route=2
	    ProxySet stickysession=ROUTEID
	</Proxy>
	ProxyPass        "/gui" "balancer://gui-cluster"
	ProxyPassReverse "/gui" "balancer://gui-cluster"

	ErrorLog ${APACHE_LOG_DIR}/flower-cluster-error.log
	CustomLog ${APACHE_LOG_DIR}/flower-cluster-access.log combined
</VirtualHost>