In dieser Artikelserie werden wir versuchen, einen Überblick über die Grundlagen der Verwendung von Payara Server in der Produktion mit Apache Web Server (httpd) und Ubuntu zu geben. Viele der Konzepte basieren nicht auf den hier verwendeten Tools und können auf andere Szenarien angewendet werden.
Unser Ziel ist es, Folgendes zu konfigurieren:

Hier haben wir einen Apache-Webserver, der unseren Benutzern zur Verfügung steht. Ihre Anfragen werden an eine von zwei Instanzen des Payara-Servers gesendet. Hier sehen wir uns die Verwendung von JSESSIONID-Cookie-basiertem „Kleben“ von Sitzungen an, um sicherzustellen, dass jeder Benutzer mit demselben Payara-Server interagiert, sowie die Sitzungsreplikation, um sicherzustellen, dass der andere vorhandene Sitzungen verarbeiten kann, wenn ein Payara-Server ausfällt kein Problem.
Wir gehen davon aus, dass der Apache-Webserver bereits installiert und konfiguriert ist. Unser nächster Schritt besteht darin, die Weiterleitung von Anforderungen so zu konfigurieren, dass Datenverkehr an Payara Server gesendet wird.
Was ist Anforderungsweiterleitung?
Die Anforderungsweiterleitung (oder der Proxy) erfolgt, wenn ein Server, der Webdatenverkehr empfängt, diesen an ein anderes Ziel sendet. Sie können verwendet werden, um den tatsächlichen Standort des Benutzers zu verbergen, interne Systeme nicht zu sehen oder die Leistung zu steuern. Wie die meisten Webserver kann der Apache-Webserver durch Module ergänzt werden, mit denen Anforderungen an den Server weitergeleitet und Antworten über einen Proxy gesendet werden können. Dies bedeutet, dass Sie Apache als Vermittler verwenden können, wodurch die Angabe von Portnummern oder genauen IP-Adressen entfällt und der Benutzer Antworten von demselben Server erhalten kann (anstatt auf localhost zu klicken und eine Adressleiste mit der Bezeichnung localhost : 8080 zu haben )
Konfigurieren Sie die Weiterleitung von Anforderungen zwischen dem Apache-Webserver und dem Payara-Server
In diesem Beitrag werden wir uns ein Paket ansehen, das im Ubuntu-Repository verfügbar ist. Das Ubuntu-Paket enthält Apache-Binärdateien, verfügt jedoch auch über zusätzliche „Hilfstools“ zum Verwalten von Konfigurationsdateien. In Ubuntu 18 sind die beiden Module, die wir zu Apache hinzufügen müssen, Teil des zuvor installierten Apache2-Pakets. Es kann aus dem Repository installiert werden mit:
sudo apt install apache2
Beachten Sie, dass Sie vor Ubuntu 16.04 "apt-get" anstelle von "apt" verwenden müssen.Wir werden zwei Module installieren, um die grundlegende Weiterleitung von http-Anfragen zu ermöglichen - mod_proxy und mod_proxy_http. In Ubuntu steuern Hilfstools die Installation dieser Module. Um dies noch einfacher zu gestalten, suchen die Tools nach ihren Abhängigkeiten und schließen sie ein. Es ist nützlich, dass für mod_proxy_http mod_proxy erforderlich ist. Dies bedeutet, dass unser Team folgendermaßen aussieht:
sudo a2enmod proxy_http
Beachten Sie, dass in diesen Befehlen das Präfix "mod_" weggelassen werden kann.

Wenn Sie das Modul deaktivieren möchten, gibt es ein Hilfsprogramm für a2enmod namens a2dismod, das auf die gleiche Weise verwendet wird. Das Tool hat eine Abhängigkeit erkannt und auch mod_proxy enthalten. Wenn Sie mehrere Module hatten, die Sie aktivieren wollten, können Sie sie nach proxy_http hinzufügen und durch Leerzeichen trennen ...
Wir werden den Server später neu starten, da wir auch die Konfiguration ändern müssen.
Das Apache2-Paket in Ubuntu verfügt über eine Beispiel-Site-Konfiguration mit dem Namen "000-default". Die Konfigurationsdatei für diese Site befindet sich im Ordner / etc / apache2 / sites-available und enthält einen symbolischen Link zum Ordner sites-enabled.
Struktur der Apache-Konfigurationsdatei
In der Regel sehen Sie, dass Internethandbücher auf httpd.conf als Konfigurationsdatei zum Bearbeiten verweisen. Dies ist nur die übergeordnete Standardkonfigurationsdatei. Auf Debian / Ubuntu-Systemen (und ihren Derivaten wie Linux Mint) lautet die Suchdatei apache2.conf.
Diese Datei wird gelesen und ihre Anweisungen werden von oben nach unten angewendet. Wenn also zwei verschiedene Werte für dieselbe Eigenschaft festgelegt werden, wird der zweite angewendet. (Genauer gesagt wird der erste nur angewendet, bis der zweite Parameter gelesen wird).
Diese Datei kann auch Dateien und Ordner speziell "einschließen" (beachten Sie, dass Platzhalter auch funktionieren). Sie werden gelesen und mit der Hauptkonfiguration an der Stelle kombiniert, an der „include“ geschrieben ist. Somit ist die allerletzte Zeile in der Hauptkonfigurationsdatei (wenn keine andere Datei angegeben ist) die letzte Zeile der zu installierenden Konfiguration, egal was passiert.
Die Standardseite in der neuen Apache-Installation unter Ubuntu befindet sich in /var/www/index.html und bietet einen guten Überblick darüber, wie dies im Detail funktioniert.
Erstellen einer neuen Site-Konfiguration
Wir werden die Standardkonfiguration nicht verwenden, da wir ein bestimmtes Verhalten hinzufügen müssen. Kopieren Sie die alte Konfiguration von den verfügbaren Sites und benennen Sie sie in etwas Denkwürdiges um.
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/payara-site.conf
Öffnen Sie eine neue Datei in Ihrem bevorzugten Texteditor als root. Sie sollten so etwas sehen:

Das Element enthält eine Reihe von Anweisungen, die dem Server mitteilen, wie er auf die aufgelisteten eingehenden Anforderungen reagieren soll. In diesem Beispiel verarbeitet <VirtualHost *: 80> alle auf dem Server über Port 80 empfangenen Antworten. Eine ausführlichere Beschreibung der VirtualHost-Tags finden Sie in der Apache-Dokumentation.
Wir müssen zwei Zeilen in die Tags einfügen, um Apache mitzuteilen, wie mit eingehendem und ausgehendem Datenverkehr umgegangen werden soll - eine, um Apache mitzuteilen, wohin Anforderungen gesendet werden sollen, und die andere, um Apache mitzuteilen, woher die Antworten kommen sollen. Auf diese Weise kann ein Benutzer, der localhost besucht, unter localhost : 8080 / auf unseren Anwendungsserver umgeleitet werden, und Antworten, die an localhost : 8080 / gerichtet sind, werden stattdessen umgeleitet, sodass der Benutzer sieht, dass sie von localhost kommen .
Fügen Sie die folgende Zeile hinzu, um den eingehenden Datenverkehr zu steuern:
ProxyPass / http://localhost:8080/
Diese Anweisung weist Apache an, alles nach dem Domänennamen des Servers an
localhost : 8080 / zu senden, als ob der Benutzer direkt zu dieser URL gegangen wäre.
ProxyPassReverse / http://localhost:8080/
Diese Anweisung teilt Apache die Rückgabe-URL des Proxys mit, sodass die Antwort, obwohl sie von der Payara Server-Instanz an Port 8080 zurückgegeben wird, so aussieht, als ob sie von Apache empfangen wurde. Wenn diese beiden Anweisungen zusammen verwendet werden, können wir mit mod_rewrite komplexe reguläre Ausdrücke vermeiden.
Unter der Annahme, dass der Domainname, den wir verwenden möchten, z. B. www.example.com , bedeutet unsere Konfiguration, dass die Anforderung an www.example.com/myapp tatsächlich an den Payara-Server gesendet wird, als hätte der Benutzer eine direkte Verbindung zu localhost : 8080 hergestellt // MyApp.
Ihre Datei sollte jetzt so aussehen (ich habe die meisten Kommentare gelöscht, um zu klären, was genau benötigt wird):

Speichern Sie Ihre Datei.
Führen Sie die folgenden Befehle aus, um die Standardwebsite zu deaktivieren und unsere neue Konfiguration zu aktivieren:
sudo a2dissite 000-default.conf sudo a2ensite payaraSite.conf
Starten Sie den Apache HTTP Server-Dienst neu (den zuvor übersprungenen Neustart):
sudo service apache2 restart
So stoppen und starten Sie Apache HTTP Server:
Servicestopp
sudo service apache2 stop sudo service apache2 start
Vergessen Sie nicht, Payara Server zu starten:
/opt/payara5/bin/asadmin start-domain domain1
Bevor Sie Konfigurationsänderungen vornehmen, indem Sie zu localhost gehen , werden Sie zum Apache-Begrüßungsbildschirm weitergeleitet:

Jetzt haben wir unseren Proxyserver erweitert und neue Anweisungen für unsere Apache-Benutzerkonfiguration hinzugefügt, wenn wir localhost / index.html eingeben, die wir jetzt an den Begrüßungsbildschirm von Payara Server senden:

Jetzt können Sie dem Payara-Server Anwendungen hinzufügen
Daher haben wir jetzt einen aktiven Apache-HTTP-Server, der als Proxy fungiert (mit der Möglichkeit, zusätzliche Module hinzuzufügen), und einen funktionierenden Payara-Server, der bereit ist, Anwendungen hinzuzufügen.
Wir haben die Installation beider Server durchlaufen, Apache konfiguriert, das Dateisystem untersucht und uns kurz die Payad Server asadmin Server-Befehle angesehen.
Das nächste Mal werden wir uns ansehen, wie die Funktionalität von Apache und Payara Server erweitert werden kann und wie Payara Server Skalierbarkeit und zusätzliche Verbesserungen bieten kann, die wir Apache hinzufügen, um mehrere interne Server zu verwalten.