So richten Sie den Apache -Webserver -Proxy vor Apache Tomcat unter Red Hat Linux ein
- 1651
- 414
- Tamina Liebach
Zielsetzung
Unser Ziel ist es, Apache HTTPD so einrichten.
Betriebssystem- und Softwareversionen
- Betriebssystem: Red Hat Enterprise Linux 7.5
- Software: Apache HTTPD, Apache Tomcat
Anforderungen
Privilegierter Zugriff auf das System
Schwierigkeit
EINFACH
Konventionen
- # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können
sudo
Befehl - $ - Angegebene Linux-Befehle, die als regelmäßiger nicht privilegierter Benutzer ausgeführt werden sollen
Einführung
Die Verwendung von Apache HTTPD als Proxy zu einem Apache -Tomcat -Anwendungscontainer ist ein übliches Setup. Es kommt mit vielen Anwendungsfällen, das trivialste ist, statische Inhalte aus zu bedienen httpd
, Bereitstellung von Diensten, die eine schwere Geschäftslogik aus einer in Java geschriebenen Anwendung implementieren, die sich im Tomcat -Container befindet.
Durch das Erstellen eines Proxy können wir eine Art Front-End für die Anwendungsschicht erstellen, in der wir Sicherheitsmaßnahmen im Webserver einführen, Lastausgleich anwenden, bedingte Umleitung verwenden oder alle anderen vom Webserver bereitgestellten Funktionen verwenden können. Auf diese Weise müssen wir keine dieser Funktionen in unserer Anwendung implementieren und können die Funktionen für den Dienst selbst konzentrieren. Wir werden einen mit vollständigen Webserver für die Benutzer präsentiert, einige der URLs, die lautlos an den Anwendungscontainer weitergeleitet werden, auf die möglicherweise nicht für sich zugegriffen werden kann. Die Antworten der Anwendung werden an die Kunden weitergeleitet, die nicht wissen, dass sie etwas anderes als den Webserver gesprochen haben - das heißt, wenn wir darauf achten, keine Informationen (z. als eine Schicht.
Wir werden das AJP -Protokoll verwenden, das zwischen Webserver und Java -basierten Anwendungscontainern verwendet werden kann, um die Möglichkeit zu bieten, die Last zwischen mehreren Anwendungsservern auszugleichen. Einen Lastausgleichsvorräte sind jedoch nicht im Rahmen dieses Tutorials eingerichtet.
Wir werden unser Setup auf Red Hat Linux 7 konfigurieren.5, aber der Apache -Webserver, das AJP -Modul und der Apache Tomcat -Anwendungscontainer sind überall verfügbar. Daher ist dieses Setup mit kleinen Anpassungen wie Dateisystempfaden oder Servicenamen tragbar.
Installation der erforderlichen Software
Zuerst müssen wir die Dienste installieren, die wir nutzen werden. In einer Lastausgleichs -Setup -Tomcat -Server kann sich auf verschiedenen Maschinen befinden, und es werden häufig eine Farm von Containern anbieten, die einen Service aufbauen.
# Yum Installation HTTPD Tomcat Tomcat-Webapps
Wir installieren die Tomcat-Webapps
Zu den Testzwecken befindet sich in diesem Paket eine Beispiele für Webanwendungen, die auf unserem Tomcat -Server für die Installation bereitgestellt werden. Wir werden diese Anwendung verwenden, um zu testen, ob unser Setup wie beabsichtigt funktioniert.
Jetzt können wir unseren Tomcat -Server aktivieren und starten:
# Systemctl aktivieren Tomcat
# Systemctl Start Tomcat
Und unser Webserver:
# SystemCTL aktivieren HTTPD
# Systemctl Start HTTPD
Der Standard httpd
Die Installation enthält die Proxy -Module, die wir benötigen. Um zu überprüfen, ob es so ist, können wir den Webserver abfragen Apachektl
:
# apachectl -m | GREP AJP Proxy_ajp_module (freigegeben)
Kopieren Anmerkung 1.X Apache -Versionen verwenden mod_jk
Modul statt von Proxy_ajp
.
HTTPD -Konfiguration
Die in Tomcat bereitgestellten Beispiele für Webanwendungen werden nach der Installation standardmäßig veröffentlicht Server-URL: 8080/Beispiele
. Wir werden Proxy -Anfragen zum Port 80 des Servers (der Standard -HTTP -Port) des Servers anfordern, der etwas von der anfordert Server-URL/Beispiele
von der bedient werden Beispiele
Webanwendung, die in Tomcat bereitgestellt werden. Anfragen, die zu einer anderen URL auf dem Server kommen, werden vom Webserver bedient. Wir werden einige statische Inhalte einrichten, um diese Funktionalität anzuzeigen.
In unserem Beispiel wird der Server aufgerufen WS.Foobar.com
. Damit der Proxy eine Textdatei mit Ihrem bevorzugten Editor unter dem Drop-In-Konfigurationsverzeichnis des Webservers erstellen kann, nämlich /etc/httpd/conf.D
an Red Hat -Aromen mit der Erweiterung von .Conf
. Unser Setup muss nicht direkt erreichbar sein, dass Tomcat direkt erreichbar ist, daher verwenden wir Lokalhost
als Ziel Host in der /etc/httpd/conf.d/example_proxy.Conf
Datei:
Servername WS.Foobar.com proxyRequests off Proxypass/Beispiele AJP: // localhost: 8009/Beispiele Proxypassreverse/Beispiele ajp: // localhost: 8009/Beispiele
Kopieren Um auf der sicheren Seite zu sein, können wir überprüfen, ob unsere Konfiguration korrekt ist, bevor wir uns bewerben Apachektl
:
# apachektl configtest syntax OK
Kopieren Wenn der Konfigurationstest einen Fehler wie die folgenden zurückgibt:
Konnte den Hostnamen WS nicht lösen.Foobar.com - ignorieren!
Wenn bedeutet unsere Servername
Die Richtlinie ist ungültig, da sie vom Webserver nicht behoben werden kann. Entweder müssen wir es im (lokalen oder globalen) DNS registrieren oder eine Linie in der /etc/hosts
Datei, die die öffentliche IP -Adresse des Hosts enthält, gefolgt von dem Namen, den wir in der obigen Konfiguration angegeben haben. Wenn die Hosts -Datei die IP bereits mit einem anderen Namen (möglicherweise dem echten Hostnamen) enthält, können wir den Servernamen nach den Namen des Hosts in derselben Zeile hinzufügen, wird das Setup funktioniert.
Nach erfolgreichem Test müssen wir die neue Konfiguration anwenden, indem wir den Webserver neu starten:
# Systemctl Neustart HTTPD neu starten
Tomcat -Konfiguration
Mit der Standardinstallation hört der Tomcat -Container AJP -Anforderungen an allen Schnittstellen auf Port 8009 an. Dies kann in der Hauptkonfigurationsdatei überprüft werden:
# anzeigen/usr/sharle/tomcat/conf/server.xml […] […]
Kopieren Wenn wir den Tomcat -Container nicht benötigen und die Anwendungen für sich selbst erreichbar sind, können wir jeden Anschluss nur auf Localhost einstellen:
Steckeradresse = "127.0.0.1 "Port = ..."
Um sich zu bewerben, können wir Tomcat mit:
# Systemctl Tomcat neu starten
In unserer Labormaschine wird dies nicht tun, da wir sehen müssen, dass uns der gleiche Inhalt auf beiden Ports bedient wird 80
Und 8080
.
Testen
Unser minimales AJP -Proxy -Setup ist abgeschlossen. Wir können es testen. Aus der Befehlszeile können wir das aufrufen Beispiele
Anwendung direkt am Port 8080
:
$ wget http: // ws.Foobar.com: 8080/Beispiele-2018-09-13 11: 00: 58-- http: // ws.Foobar.com: 8080/Beispiele auf Lösung von WS.Foobar.com (WS.Foobar.com)… . 10.104.1.165 Anschließen mit WS.Foobar.com (WS.Foobar.com) | 10.104.1.165 |: 8080… . in Verbindung gebracht. HTTP -Anfrage gesendet, erwartet auf die Antwort… . 302 gefunden Ort:/Beispiele/[folgende]-2018-09-13 11: 00: 58-- http: // ws.Foobar.Com: 8080/ Beispiele/ Wiederverwendung der vorhandenen Verbindung zu WS.Foobar.com: 8080. HTTP -Anfrage gesendet, erwartet auf die Antwort… . 200 OK Länge: 1253 (1.2K) [text/html] Saving to: 'examples' 100%[================================== ====================================================== ====================================================== ==================================>] 1,253 --.-K/s in den 0s 2018-09-13 11:00:58 (102 MB/s)-'Beispiele' gespeichert [1253/1253]
Kopieren Und sehen Sie den angegebenen Inhalt:
$ schwanz Beispiele Apache Tomcat Beispiele
- Servlets Beispiele
- JSP -Beispiele
- Beispiele für Websocket (JSR356)
- Beispiele für Websocket