Apache HTTP Server est un des serveurs WEB les plus utilisés. Il permet facilement d’exposer des URL 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 à FlowerDocs 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 applications FlowerDocs Core et un avec affinité de session pour les applications FlowerDocs 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>