{"id":122,"date":"2017-11-07T23:09:29","date_gmt":"2017-11-07T22:09:29","guid":{"rendered":"http:\/\/corsaire-consulting.fr\/blog\/?p=122"},"modified":"2017-11-13T14:20:42","modified_gmt":"2017-11-13T13:20:42","slug":"haproxy-weblogic-server-et-t3","status":"publish","type":"post","link":"https:\/\/corsaire-consulting.fr\/blog\/index.php\/2017\/11\/07\/haproxy-weblogic-server-et-t3\/","title":{"rendered":"HAProxy, WebLogic Server et T3"},"content":{"rendered":"<p>Le probl\u00e8me pos\u00e9 : Comment masquer les serveurs WebLogic auxquels doivent se connecter des partenaires externes afin de poster des messages JMS ?<\/p>\n<p>Une solution possible consiste \u00e0 placer un ou plusieurs serveurs HAProxy devant les serveurs WebLogic.<!--more--><\/p>\n<div class=\"well\">HAProxy est un load-balancer logicel de plus en plus r\u00e9pandu.<br \/>\nR\u00e9f\u00e9rence : http:\/\/www.haproxy.org\/<br \/>\nVersion actuelle : 1.7<br \/>\nOS :Linux uniquement.<\/div>\n<p>Une de ses caract\u00e9ristiques est qu&rsquo;il assure la r\u00e9partition de charge et la tol\u00e9rance aux pannes au niveau HTTP. Il est donc possible de l&rsquo;utiliser devant des applications web h\u00e9berg\u00e9es dans des serveurs WebLogic, en cluster ou non, comme on le ferai avec un serveur Apache.<\/p>\n<p>&nbsp;<\/p>\n<p>HAProxy est surtout connu pour sa capacit\u00e9 d&rsquo;agir au niveau TCP. Il devient donc possible de l&rsquo;utiliser devant des tout objet RMI tels que des EJBs ou des ressources JMS.<\/p>\n<p>Gr\u00e2ce \u00e0 cette solution, les partenaires externes ne sont plus en contact qu&rsquo;avec le serveur HAProxy ; les urls des serveurs WebLogic deviennent alors invisible renfor\u00e7ant ainsi la s\u00e9curit\u00e9. Cette solution permet de limiter les impacts pour les partenaires lorsque les URLs des serveurs WebLogic changent&#8230;<\/p>\n<p>L&rsquo;exemple suivant illustre une configuration d&rsquo;un HAProxy devant 2 serveurs WebLogic. Ces 2 serveurs h\u00e9bergent une application web, accessible en HTTP, ainsi que des ressources JMS, accessibles via T3.<\/p>\n<p>Le serveur HAProxy \u00e9coute sur les ports 5000 (t3) et 80 (HTTP)<\/p>\n<p>Les serveurs WebLogic \u00e9coutent sur les URLs suivantes :<\/p>\n<ul>\n<li>192.168.56.1:8101<\/li>\n<li>192.168.56.1:8201<\/li>\n<\/ul>\n<p>[pastacode lang=\u00a0\u00bbapacheconf\u00a0\u00bb manual=\u00a0\u00bb&#8230;%0A%23&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;%20%0A%23%20main%20frontend%20which%20proxys%20to%20the%20backends%20%0A%23&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;%20%0Afrontend%C2%A0%C2%A0main%20*%3A5000%20%0Amode%20tcp%20%0Aoption%20tcp-check%20%0Adefault_backend%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0app%20%0A%0Afrontend%20check%20*%3A80%20%0Amode%20http%20%0Adefault_backend%20checkWebApp%20%0A%0A%23&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;%20%0A%23%20round%20robin%20balancing%20between%20the%20various%20backends%20%0A%23&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;%20%0Abackend%20app%20%0Abalance%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0roundrobin%20%0Amode%20tcp%20%0Aserver%C2%A0%C2%A0ms1%20192.168.56.1%3A8101%20check%20%0Aserver%C2%A0%C2%A0ms2%20192.168.56.1%3A8201%20check%20%0A%0Abackend%20checkWebApp%20%0Abalance%20roundrobin%20%0Amode%20http%20%0Aserver%20ms1%20192.168.56.1%3A8101%20check%20%0Aserver%20ms2%20192.168.56.1%3A8201%20check%20%0A%0A&#8230;\u00a0\u00bb message=\u00a0\u00bbExtrait du fichier de configuration haproxy \/etc\/haproxy\/haproxy.cfg\u00a0\u00bb highlight=\u00a0\u00bb\u00a0\u00bb provider=\u00a0\u00bbmanual\u00a0\u00bb\/]<\/p>\n<p>Une derni\u00e8re chose, il est n\u00e9cessaire d&rsquo;ajouter la propri\u00e9t\u00e9 suivante aux serveurs WebLogic sous peine de d\u00e9clencher l&rsquo;exception <span id=\"kmPgTpl:r1:ot71\" class=\"kmContent\">javax.naming.CommunicationException<\/span> lors de la connexion.<\/p>\n<p>[pastacode lang=\u00a0\u00bbbash\u00a0\u00bb manual=\u00a0\u00bb-Dweblogic.rjvm.enableprotocolswitch%3Dtrue\u00a0\u00bb message=\u00a0\u00bb\u00a0\u00bb highlight=\u00a0\u00bb\u00a0\u00bb provider=\u00a0\u00bbmanual\u00a0\u00bb\/]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Le probl\u00e8me pos\u00e9 : Comment masquer les serveurs WebLogic auxquels doivent se connecter des partenaires externes afin de poster des messages JMS ? Une solution possible consiste \u00e0 placer un ou plusieurs serveurs HAProxy devant les serveurs WebLogic.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[4],"tags":[19,17,18,8],"class_list":["post-122","post","type-post","status-publish","format-standard","hentry","category-weblogic","tag-haproxy","tag-load-balancing","tag-t3","tag-weblogic-server"],"_links":{"self":[{"href":"https:\/\/corsaire-consulting.fr\/blog\/index.php\/wp-json\/wp\/v2\/posts\/122","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/corsaire-consulting.fr\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/corsaire-consulting.fr\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/corsaire-consulting.fr\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/corsaire-consulting.fr\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=122"}],"version-history":[{"count":4,"href":"https:\/\/corsaire-consulting.fr\/blog\/index.php\/wp-json\/wp\/v2\/posts\/122\/revisions"}],"predecessor-version":[{"id":163,"href":"https:\/\/corsaire-consulting.fr\/blog\/index.php\/wp-json\/wp\/v2\/posts\/122\/revisions\/163"}],"wp:attachment":[{"href":"https:\/\/corsaire-consulting.fr\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=122"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/corsaire-consulting.fr\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=122"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/corsaire-consulting.fr\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=122"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}