Origine du besoin
Vous êtes content, vous venez de doubler le nombre de serveurs de votre plateforme d’échanges. Vous venez de passer de 1 serveur OSB à 2 serveurs OSB !
Au passage, cela vous facilite bien la vie :
- meilleures performances globales
- moins sensible aux interruptions de service
- redémarrage nœud par nœud = redémarrage « quand on veut » !
- et bien d’autres avantages…
- constituer un unique point d’entrée pour les clients de vos web services
- répartir uniformément les requêtes entre vos 2 serveurs OSB
Il fait ce qu’on veut, il est gratuit, reconnu et maintenu, nous choisissons donc peut-être le plus connu de tous : Apache HTTP Server (https://httpd.apache.org/).
Il est aussi connu sous le nom de Apache « httpd« , il devra être installé sur une machine tierce, distincte des deux machines OSB.
Ici, nous faisons l’opération sur un serveur Linux dont voici la configuration :
[orasoa@httpdhost1 logs]$ lsb_release -a LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch Distributor ID: RedHatEnterpriseServer Description: Red Hat Enterprise Linux Server release 6.5 (Santiago) Release: 6.5 Codename: Santiago
Et comme la plupart du temps sur les serveurs Linux, Apache httpd est déjà installé, vérifions la version :
[orasoa@httpdhost1 logs]$ httpd -v Server version: Apache/2.2.15 (Unix) Server built: Aug 2 2013 08:02:15
Vous pourrez lire ailleurs que l’on peut utiliser Oracle WebLogic Server plug-in for Apache HTTP Server (mod_wl) pour faire interagir Apache et WebLogic. Cela équivaut a utiliser Oracle HTTP Server, basé sur Apache HTTP Server et embarquant des modules d’intégration spécifiques à Oracle Fusion Middleware. Mais notre besoin étant très basique ici, nous nous contenterons du serveur HTTP original (Apache).
Notre besoin en une phrase
Il nous faut simplement éditer correctement un fichier de conf et à démarrer le serveur… that’s all!
Configuration de Apache HTTP Server
Mettre le serveur à l’écoute
# # Listen: Allows you to bind Apache to specific IP addresses and/or # ports, in addition to the default. See also the <virtualhost> # directive. # # Change this to Listen on specific IP addresses as shown below to # prevent Apache from glomming onto all bound IP addresses (0.0.0.0) # #Listen 12.34.56.78:80 Listen 9001
Rediriger les requêtes
# # # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # The first VirtualHost section is used for requests without a known # server name. # #<VirtualHost *:80> # ServerAdmin webmaster@dummy-host.example.com # DocumentRoot /www/docs/dummy-host.example.com # ServerName dummy-host.example.com # ErrorLog logs/dummy-host.example.com-error_log # CustomLog logs/dummy-host.example.com-access_log common #</VirtualHost> <VirtualHost *:9001> <Proxy balancer://mycluster> BalancerMember http://osbhost1:8001 BalancerMember http://osbhost2:8001 </Proxy> ProxyPass / balancer://mycluster/ </VirtualHost>
Nous venons de définir une règle répartissant uniformément chaque requête reçu sur le port 9001 vers le port 8001 de nos 2 serveurs osbhost1 et osbhost2 en load balancing.
Démarrage de Apache HTTP Server
[orasoa@httpdhost1 home]$ sudo service httpd start Starting httpd: [ OK ]
Vérifiez qu’il a bien démarré :
[orasoa@httpdhost1 home]$ sudo service httpd status httpd (pid 8483) is running...