Dans cette série d'articles, nous allons essayer de donner un aperçu des principes de base de l'utilisation de Payara Server en production avec Apache Web Server (httpd) et Ubuntu. De nombreux concepts ne reposent pas sur les outils que nous utilisons ici et peuvent être appliqués à d'autres scénarios.
Notre objectif est de configurer les éléments suivants:

Ici, nous avons un serveur web Apache qui sera disponible pour nos utilisateurs. Leurs demandes seront envoyées à l'une des deux instances du serveur Payara. Nous examinons ici l'utilisation du «collage» de sessions basé sur les cookies JSESSIONID pour garantir que chaque utilisateur interagit avec le même serveur Payara, ainsi que la réplication de session, pour garantir que si un serveur Payara tombe en panne, l'autre peut gérer les sessions existantes pas de problème.
Nous supposons que le serveur Web Apache est déjà installé et configuré. Notre prochaine étape consiste à configurer le transfert de demande pour envoyer du trafic vers le serveur Payara.
Qu'est-ce que le transfert de demande?
Le transfert de demande (ou proxy) se produit lorsqu'un serveur recevant du trafic Web l'envoie vers une autre destination. Ils peuvent être utilisés pour masquer l'emplacement réel de l'utilisateur, pas pour voir les systèmes internes ou pour contrôler les performances. Comme la plupart des serveurs Web, le serveur Web Apache peut être complété par des modules qui lui permettent de transmettre des demandes au serveur et d'envoyer des réponses via un proxy. Cela signifie que vous pouvez utiliser Apache comme intermédiaire, ce qui élimine la nécessité de spécifier des numéros de port ou des adresses IP exactes et permet à l'utilisateur de recevoir des réponses du même serveur (au lieu de cliquer sur localhost et d'avoir une barre d'adresse intitulée localhost : 8080 )
Configurer le transfert de demande entre le serveur Web Apache et le serveur Payara
Dans cet article, nous examinerons un package disponible dans le référentiel Ubuntu. Le paquet Ubuntu contient des binaires Apache, mais possède également des «outils d'aide» supplémentaires pour gérer les fichiers de configuration. Dans Ubuntu 18, les deux modules que nous devons ajouter à Apache font partie du package apache2 que nous avons installé précédemment. Il peut être installé à partir du référentiel en utilisant:
sudo apt install apache2
Notez qu'avant Ubuntu 16.04, vous devrez utiliser «apt-get» au lieu de «apt».Nous allons installer deux modules pour permettre le transfert de base des requêtes http - mod_proxy et mod_proxy_http. Dans Ubuntu, des outils d'aide contrôlent l'installation de ces modules - pour le rendre encore plus facile, les outils rechercheront leurs dépendances et les incluront. Il est utile que mod_proxy_http nécessite que mod_proxy fonctionne, ce qui signifie que notre équipe ressemble à ceci:
sudo a2enmod proxy_http
Notez que dans ces commandes, nous pouvons omettre le préfixe "mod_"

Si vous souhaitez désactiver le module, il existe un outil d'assistance pour a2enmod appelé a2dismod, qui est utilisé de la même manière. L'outil a détecté une dépendance et a également inclus mod_proxy. Si vous aviez plusieurs modules que vous vouliez activer, vous pouvez les ajouter après proxy_http, en les séparant par des espaces ...
Nous redémarrerons le serveur plus tard, car nous devons également modifier la configuration.
Le paquet apache2 dans Ubuntu a un exemple de configuration de site appelé "000-default". Le fichier de configuration de ce site se trouve dans le dossier / etc / apache2 / sites-available et contient un lien symbolique vers le dossier activé pour les sites.
Structure du fichier de configuration Apache
En règle générale, vous verrez que les manuels Internet se réfèrent à httpd.conf comme un fichier de configuration pour l'édition. Il s'agit simplement du fichier de configuration par défaut «parent». Sur les systèmes Debian / Ubuntu (et leurs dérivés, tels que Linux Mint), le fichier de recherche est apache2.conf.
Ce fichier est lu et ses directives sont appliquées de haut en bas, donc si deux valeurs différentes sont définies pour la même propriété, la seconde sera appliquée. (Plus précisément, le premier ne sera appliqué que jusqu'à la lecture du deuxième paramètre).
Ce fichier peut également «inclure» spécifiquement des fichiers et des dossiers (notez que les caractères génériques fonctionnent également). Ils seront lus et combinés avec la configuration principale à l'endroit où «include» est écrit. Ainsi, la toute dernière ligne du fichier de configuration principal (si elle ne spécifie pas un autre fichier) sera la dernière ligne de la configuration à installer, quoi qu'il arrive.
La page par défaut de la nouvelle installation Apache sur Ubuntu se trouve dans /var/www/index.html et donne un bon aperçu de la façon dont cela fonctionne en détail.
Création d'une nouvelle configuration de site
Nous n'utiliserons pas la configuration par défaut car nous devons ajouter un comportement spécifique. Copiez l'ancienne configuration à partir des sites disponibles et renommez-la quelque chose de mémorable.
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/payara-site.conf
Ouvrez un nouveau fichier dans votre éditeur de texte préféré en tant que root. Vous devriez voir quelque chose comme ceci:

L'élément contient une série de directives qui indiquent au serveur comment répondre aux demandes entrantes répertoriées. Dans cet exemple, <VirtualHost *: 80> traite toutes les réponses reçues par le serveur via le port 80. Pour une description plus détaillée des balises VirtualHost, consultez la documentation Apache.
Nous devons ajouter deux lignes dans les balises pour indiquer à Apache comment gérer le trafic entrant et sortant - une pour indiquer à Apache où envoyer les demandes et l'autre pour indiquer à Apache d'où les réponses doivent provenir. De cette façon, un utilisateur visitant localhost peut être redirigé vers notre serveur d'applications à localhost : 8080 /, et les réponses dirigées vers localhost : 8080 / sont redirigées à la place, de sorte que l'utilisateur les voit venir de localhost .
Pour contrôler le trafic entrant, ajoutez la ligne:
ProxyPass / http://localhost:8080/
Cette directive indique à Apache d'envoyer tout ce qui se trouve après le nom de domaine du serveur à
localhost : 8080 /, comme si l'utilisateur accédait directement à cette URL.
ProxyPassReverse / http://localhost:8080/
Cette directive indique à Apache l'URL de retour du proxy afin que, bien que la réponse soit renvoyée par l'instance de Payara Server au port 8080, l'URL semble avoir été reçue d'Apache. Ces deux directives, lorsqu'elles sont utilisées ensemble, signifient que nous pouvons éviter les expressions régulières complexes avec mod_rewrite.
En supposant que le nom de domaine que nous voulons utiliser, par exemple, www.example.com , notre configuration signifie que la demande à www.example.com/myapp sera effectivement envoyée au serveur Payara, comme si l'utilisateur s'était directement connecté à localhost : 8080 // MyApp.
Votre fichier devrait maintenant ressembler à ceci (j'ai supprimé la plupart des commentaires pour clarifier ce qui est exactement nécessaire):

Sauvegardez votre fichier.
Pour désactiver le site par défaut et activer notre nouvelle configuration, exécutez les commandes:
sudo a2dissite 000-default.conf sudo a2ensite payaraSite.conf
Redémarrez le service Apache HTTP Server (le redémarrage que nous avons ignoré précédemment):
sudo service apache2 restart
Pour arrêter et démarrer Apache HTTP Server, c'est:
arrêt de service
sudo service apache2 stop sudo service apache2 start
N'oubliez pas de démarrer Payara Server:
/opt/payara5/bin/asadmin start-domain domain1
Avant de modifier la configuration en allant sur localhost , vous serez redirigé vers l'écran d'accueil Apache:

Mais maintenant, nous avons ajouté à notre serveur proxy et inclus de nouvelles directives pour notre configuration utilisateur Apache lorsque nous entrons localhost / index.html, que nous envoyons maintenant à l'écran d'accueil du serveur Payara:

Vous pouvez maintenant ajouter des applications au serveur Payara
Ainsi, nous avons maintenant un serveur HTTP Apache actif agissant comme notre proxy (avec la possibilité d'ajouter des modules supplémentaires), et un serveur Payara fonctionnel, prêt à y ajouter des applications.
Nous avons effectué l'installation des deux serveurs, configuré Apache, exploré le système de fichiers et examiné très brièvement les commandes asadmin de Payad Server.
La prochaine fois, nous verrons comment étendre les fonctionnalités d'Apache et de Payara Server, et comment nous pouvons faire en sorte que Payara Server fournisse une évolutivité et des améliorations supplémentaires que nous ajouterons à Apache pour gérer plusieurs serveurs internes.