Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:apache_http_server_centos_7_-_mod_proxy_ajp_-_apache_tomcat_kommunikation

Apache HTTP Server CentOS 7 - mod_proxy_ajp - Apache Tomcat Kommunikation

Der Apache HTTP Server ist ein Open Source Webserver und der seit 1996 am meisten im Internet eingesetzte Webserver weltweit. Der freie und quell offenen Webserver wird von der Apache Software Foundation zur Verfügung gestellt und weiterentwickelt.

Um den Apache HTTP Server als z.B. Frontend-Server vor eines Apache Tomcat Server zu betreiben, kann als Kommunikationsprotokoll das AJP/1.3-Protokoll zum Einsatz kommen.

Hierbei gibt es zwei Module, die die Kommunikation zwischen dem Apache HTTP Server und dem Apache Tomcat Server über das AJP/1.3-Protokoll bewerkstelligen können:

  1. mod_proxy_ajp - Federführung bei der Entwicklung Apache HTTP Server
  2. mod_jk - Federführung bei der Entwicklung Apache Tomcat Server

Nachfolgend soll der Einsatz des Moduls - mod_proxy-ajp beschrieben werden.

:!: HINWEIS - Eine Installation des Moduls mod_proxy_ajp ist nicht erforderlich, da es sich um ein Modul handelt, welches standardmäßig bei der Installation des rpm-Paktes - httpd mit installiert wird!

Ab hier werden root-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um root zu werden geben Sie bitte folgenden Befehl ein:

$ su -
Password: 

Konfiguration

/etc/httpd/conf.modules.d/00-proxy.conf

Die Konfigurationsdatei /etc/httpd/conf.modules.d/00-proxy.conf beinhaltet die Proxy-Module des Apache HTTP Server. Falls nicht alle Proxy-Module zum Einsatz kommen sollen, können die entsprechenden Inhalte auskommentiert werden!

:!: HINWEIS - Die nachfolgenden Anpassungen sind individuell und vom jeweiligen Einsatzzweck abhängig und ggf. den persönlichen Bedürfnissen anzupassen!

Die Anpassungen werden mit einem vorangestellten Kommentar in der Form

# Tachtler
gekennzeichnet.

(komplette Konfigurationsdatei)

# Tachtler
# Only required moduls should be loaded.
# This file configures all the proxy modules:
LoadModule proxy_module modules/mod_proxy.so
# LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
# LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
# LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
# LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
# LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
# LoadModule proxy_connect_module modules/mod_proxy_connect.so
# LoadModule proxy_express_module modules/mod_proxy_express.so
# LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
# LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so
# LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
# LoadModule proxy_http_module modules/mod_proxy_http.so
# LoadModule proxy_scgi_module modules/mod_proxy_scgi.so

Nur die Module

  • proxy_module –> modules/mod_proxy.so
  • proxy_ajp_module –> modules/mod_proxy_ajp.so

sind für die Kommunikation zwischen Apache HTTP Server und dem Apache Tomcat Server über das AJP/1.3-Protokoll notwendig!

/etc/httpd/conf.d/vhost.conf

Falls kein virtueller Host definiert ist, können folgende Konfigurationsangaben ebenfalls in der Datei /etc/httpd/conf/httpd.conf definiert werden.

Nachfolgend ein Beispiel für einen virtuellen Host:

#
# tomcat.tachtler.net (Apache Tomcat Applications)
#
<VirtualHost *:80>
        ServerAdmin webmaster@tachtler.net
        ServerName tomcat.tachtler.net
        ServerAlias www.tomcat.tachtler.net
        ServerPath /
 
        Alias /docs /usr/share/tomcat/webapps/docs
        Alias /host-manager /usr/share/tomcat/webapps/host-manager
        Alias /manager /usr/share/tomcat/webapps/manager
	Alias /standard /usr/share/tomcat/webapps/standard
 
        DocumentRoot "/usr/share/tomcat/webapps/ROOT"
        <Directory "/usr/share/tomcat/webapps/ROOT">
                Options -Indexes +FollowSymLinks
                # Tachtler (enable for .htaccess file support)
                # AllowOverride AuthConfig
                AllowOverride None
                # Tachtler (enable for unlimited access)
                Require all granted
        </Directory>
 
        # Protect META-INF-Directory
        <Directory "/var/lib/tomcat/webapps/ROOT/META-INF">
                AllowOverride None
                Require all denied
        </Directory>
 
        # Protect WEB-INF-Directory
        <Directory "/var/lib/tomcat/webapps/ROOT/WEB-INF">
                AllowOverride None
                Require all denied
        </Directory>
 
        ProxyRequests Off
 
        ProxyPass /docs ajp://127.0.0.1:8099/docs
        ProxyPassReverse /docs ajp://127.0.0.1:8089/docs
        ProxyPass /host-manager ajp://127.0.0.1:8099/host-manager
        ProxyPassReverse /host-manager ajp://127.0.0.1:8099/host-manager
        ProxyPass /manager ajp://127.0.0.1:8099/manager
        ProxyPassReverse /manager ajp://127.0.0.1:8099/manager
        ProxyPass / ajp://127.0.0.1:8099/
        ProxyPassReverse / ajp://127.0.0.1:8099/
        ProxyPass /standard ajp://127.0.0.1:8099/standard
        ProxyPassReverse /standard ajp://127.0.0.1:8099/standard
 
        DirectoryIndex index.htm index.jsp
 
        ErrorLog logs/tomcat_error.log
        SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded
        CustomLog logs/tomcat_access.log combined env=!forwarded
        CustomLog logs/tomcat_access.log combined_proxypass env=forwarded
</VirtualHost>
* Dies ist nur eine Beispielkonfiguration.

Die Bedeutung der einzelnen Befehle kann in der Dokumentation Apache Module mod_proxy detailliert nachgelesen werden.

ProxyRequests Off
Ermöglicht oder Deaktiviert Standard-Forward-Proxy Anfragen. Da hier eine typische Weiterleitung von Anfragen an eine nach gelagertes Back-End-System vorliegt, sollte hier die Funktionalität ausgeschaltet werden.

ProxyPass <URL> ajp://<Back-End-System>:<Port>
Ermöglicht das Zuordnen von URL auf Back-End-Systemen in die Zuständigkeit von Frontend-Systemen. Das Frontend-System agiert hier nicht direkt als konventioneller Proxy oder konventionelles Gateway, sondern ist eher als vorgelagertes System des eigentlichen Servers mit den tatsächlichen Inhalten zu sehen.

ProxyPassReverse <URL> ajp://<Back-End-System>:<Port>
Stellt sicher das auch die Antwort des Back-End-Systems, wie die des Frontend-Systems entsprechend im Header aussieht.

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
tachtler/apache_http_server_centos_7_-_mod_proxy_ajp_-_apache_tomcat_kommunikation.txt · Zuletzt geändert: 2015/05/12 14:54 von klaus