Integration des IES in den Apache: Unterschied zwischen den Versionen
Hying (Diskussion | Beiträge) |
Hying (Diskussion | Beiträge) |
||
Zeile 167: | Zeile 167: | ||
Order Deny,Allow | Order Deny,Allow | ||
Allow from All | Allow from All | ||
+ | # Wenn auf einem Server: BalancerMember http://localhost:8080 timeout=3600 retry=0 | ||
BalancerMember http://<<cms-host>>:8080 timeout=3600 retry=0 | BalancerMember http://<<cms-host>>:8080 timeout=3600 retry=0 | ||
</Proxy> | </Proxy> |
Version vom 22. Mai 2012, 09:14 Uhr
Allgemeines
Der IES ist i.d.R. für sämtliche Dateien im DocumentRoot
eines Publishers zuständig. Die Dateien werden entsprechend über den Nutzer des IES angelegt. Da jedoch der Apache diese lesen bzw. über PHP verändern / ergänzen können sollte, empfehlen wir die Zugriffsrechte entsprechend einzustellen. Unter Linux kann das einfach erreicht werden, indem der Nutzer des Webservers auch in die Gruppe ies
aufgenommen wird. Die UMASK des IES ist entsprechend voreingestellt.
Hinweise zur Integration des IES in den Apache
Die Integration des IES in den "Internet Information Server" von Microsoft ist über den sog. JK-Connector prinzipiell möglich. Weitere Informationen hierzu finden Sie im Internet
Grundsätzlich empfehlen wir sowohl unter Linux, wie auch unter Windows den Einsatz des Apache-Webservers, da wir aufgrund unserer Erfahrungen hier den besten Support liefern können.
Für die optionale Integration des IES in den Apache Webserver empfehlen wird das Apache-Modul proxy_http
. Folgende Konfiguration kann als Vorlage dienen. Die ProxyPassMatch
Anweisungen sind jedoch erst ab der Version 2.2.5 verfügbar.
Folgende Module sind für die unten aufgeführten Konfigurationsvorlagen notwendig:
mod_proxy mod_proxy_balancer mod_proxy_http mod_rewrite mod_ssl mod_headers
Da Passwörter und andere vertrauliche Daten mit dem IES ausgetauscht werden, muss immer HTTPS für den Apache eingerichtet werden.
IES Apache-Konfiguration
Für die Integration des IES in den Apache sollte ein eigener Virtueller Host eingerichtet werden. Für diesen Virtueller Host ist kein DocumentRoot notwendig!
<VirtualHost *:80>
ServerName <<cms-host>>
ErrorLog /var/log/apache2/<<cms-host>>.err
CustomLog /var/log/apache2/<<cms-host>>.log combined
# Infosite redirect
RewriteEngine On
RewriteRule ^/$ /ies/infosite/ [R,L]
###################################
# IES integration using mod_proxy #
###################################
# security
ProxyRequests Off
# always keep the host header
ProxyPreserveHost On
# timeout
ProxyTimeout 3600
# load balancer
<Proxy balancer://ies-balancer>
Order Deny,Allow
Allow from All
BalancerMember http://localhost:8080 timeout=3600 retry=0
</Proxy>
ProxyPassMatch ^(/.*\.spml(;jsessionid=\w+)?(\?.*)?)$ balancer://ies-balancer$1 stickysession=JSESSIONID nofailover=On
ProxyPassMatch ^(/ies/.*)$ balancer://ies-balancer$1 stickysession=JSESSIONID nofailover=On
ProxyPassMatch ^(/jslibs/.*)$ balancer://ies-balancer$1 stickysession=JSESSIONID nofailover=On
ProxyPassMatch ^(/infosite-webdav/.*)$ balancer://ies-balancer$1 stickysession=JSESSIONID nofailover=On
ProxyPassMatch ^(/xip/.*)$ balancer://ies-balancer$1 stickysession=JSESSIONID nofailover=On
ProxyPassMatch ^(/infosite/.*)$ balancer://ies-balancer$1 stickysession=JSESSIONID nofailover=On
# Innerhalb eines Virtuellen Hosts für HTTPS sollte immer der
# Header X-IES-SCHEME auf https gesetzt werden,
# da nur so innerhalb von IES-Applikationen ${system.baseurl}
# richtig aufgelöst wird.
#RequestHeader set X-IES-SCHEME "https"
</VirtualHost>
Apache-Konfiguration für Publikationsbereiche mit Live-Komponenten
Publikationsbereiche des IES die Live-Komponenten verwenden und somit auf den IES zugreifen müssen, werden wie folgt konfiguriert.
<VirtualHost *:80>
ServerName ...
DocumentRoot ...
ErrorLog ...
CustomLog ...
...
###################################
# IES integration using mod_proxy #
###################################
# security
ProxyRequests Off
# always keep the host header
ProxyPreserveHost On
# timeout
ProxyTimeout 3600
# load balancer
<Proxy balancer://ies-balancer>
Order Deny,Allow
Allow from All
BalancerMember http://<<cms-host>>:8080 timeout=3600 retry=0
</Proxy>
ProxyPassMatch ^(/.*\.spml(;jsessionid=\w+)?(\?.*)?)$ balancer://ies-balancer$1 stickysession=JSESSIONID nofailover=On
ProxyPassMatch ^(/ies/binary/.*)$ balancer://ies-balancer$1 stickysession=JSESSIONID nofailover=On
ProxyPassMatch ^(/infosite/.*)$ balancer://ies-balancer$1 stickysession=JSESSIONID nofailover=On
# COUNTER
# Version 1: RedicrctMatch auf den Server
#RedirectMatch ^/ies/counter(.*) http://<<cms-host>>/ies/infosite/counter$1
# Version 2: Rewrite, wenn über eine RewriteCondition noch Bedingungen angegeben werde sollen.
# Rewrite um die Counter-Aufrufe (unabhaengig von Aliases) an das CMS (mit der konfigurierten Publisher-URL) zu schicken
RewriteEngine on
#RewriteLogLevel 1
#RewriteLog /var/log/apache2/rewrite.log
RewriteRule ^/ies/counter(.*) http://<<cms-host>>/ies/infosite/counter$1 [L,NE]
RewriteRule ^/infosite/counter(.*) http://<<cms-host>>/ies/infosite/counter$1 [L,NE]
RewriteRule ^/ies/infosite/counter(.*) http://<<cms-host>>/ies/infosite/counter$1 [L,NE]
</VirtualHost>
Alternative Variante, wenn neue API und SPML-Seite unterstützt werden müssen
WICHTIG:
Wenn die Webseite ebenfalls auf dem CMS-Server liegt, dann wird voraus gesetzt, dass der Hostname (s.u. <<cms-host>>) und der <<ies-alias-hostname>> der Webseite in der /etc/hosts auf 127.0.0.1 zeigt und in der sitepark.conf der Parameter IES_BIND_ADDRESS="localhost" konfiguriert ist.
Sind die Server getrennt, muss die Url <<ies-alias-hostname>> als Alias im CMS-Server für den Publikationsbereich eingerichtet werden und auf dem Webserver ein Hosts-Eintrag mit der Url auf den CMS-Server erstellt werden. Außerdem ist folgende Anpassung der Bind-Address in der sitepark.conf notwendig: IES_BIND_ADDRESS="0.0.0.0"
<VirtualHost *:80>
ServerName www.ies-alias-hostname.de
DocumentRoot ...
ErrorLog ...
CustomLog ...
...
###################################
# IES integration using mod_proxy #
###################################
# security
ProxyRequests Off
# always keep the host header
############# WICHTIG: muss auf 'Off' stehen #################
ProxyPreserveHost Off
# timeout
ProxyTimeout 3600
# load balancer
<Proxy balancer://ies-api-balancer>
Order Deny,Allow
Allow from All
# Wenn auf einem Server: BalancerMember http://localhost:8080 timeout=3600 retry=0
BalancerMember http://<<cms-host>>:8080 timeout=3600 retry=0
</Proxy>
<Proxy balancer://ies-balancer>
Order Deny,Allow
Allow from All
############# WICHTIG: Es muss der richtige Hostname gesetzt werden #################
BalancerMember http://<<ies-alias-hostname>>:8080 timeout=3600 retry=0
</Proxy>
ProxyPassMatch ^(/ies/api/.*)$ balancer://ies-api-balancer$1 stickysession=JSESSIONID nofailover=On
####### weitere Module ######
ProxyPassMatch ^(/ies/MODUL/.*)$ balancer://ies-api-balancer$1 stickysession=JSESSIONID nofailover=On
# Beispiele:
# ProxyPassMatch ^(/ies/formservice/.*)$ balancer://ies-api-balancer$1 stickysession=JSESSIONID nofailover=On
# ProxyPassMatch ^(/ies/infoticket/.*)$ balancer://ies-api-balancer$1 stickysession=JSESSIONID nofailover=On
# ProxyPassMatch ^(/ies/jslibs/.*)$ balancer://ies-api-balancer$1 stickysession=JSESSIONID nofailover=On
ProxyPassMatch ^(/.*\.spml(;jsessionid=\w+)?(\?.*)?)$ balancer://ies-balancer$1 stickysession=JSESSIONID nofailover=On
ProxyPassMatch ^(/ies/binary/.*)$ balancer://ies-balancer$1 stickysession=JSESSIONID nofailover=On
ProxyPassMatch ^(/infosite/.*)$ balancer://ies-balancer$1 stickysession=JSESSIONID nofailover=On
# COUNTER
# Version 1: RedicrctMatch auf den Server
#RedirectMatch ^/ies/counter(.*) http://<<cms-host>>/ies/infosite/counter$1
# Version 2: Rewrite, wenn über eine RewriteCondition noch Bedingungen angegeben werde sollen.
# Rewrite um die Counter-Aufrufe (unabhaengig von Aliases) an das CMS (mit der konfigurierten Publisher-URL) zu schicken
RewriteEngine on
#RewriteLogLevel 1
#RewriteLog /var/log/apache2/rewrite.log
RewriteRule ^/ies/counter(.*) http://<<cms-host>>/ies/infosite/counter$1 [L,NE]
RewriteRule ^/infosite/counter(.*) http://<<cms-host>>/ies/infosite/counter$1 [L,NE]
RewriteRule ^/ies/infosite/counter(.*) http://<<cms-host>>/ies/infosite/counter$1 [L,NE]
</VirtualHost>
Apache-Konfiguration Version < 2.2.5
Bei älteren Apache-Versionen (< Version 2.2.5) ist unter Umständen statt einer ProxyPassMatch
eine RewriteRule
einzusetzen:
###################################
# IES integration using mod_proxy #
###################################
# security
ProxyRequests Off
# always keep the host header
ProxyPreserveHost On
# timeout
ProxyTimeout 3600
# load balancer
<Proxy balancer://ies-balancer>
Order Deny,Allow
Allow from All
BalancerMember http://localhost:8080 timeout=3600 retry=0
</Proxy>
RewriteEngine On
RewriteRule ^(.*\.spml(;jsessionid=\w+)?(\?.*)?) balancer://ies-balancer$1 [P]
RewriteRule ^(/ies/.*)$ balancer://ies-balancer$1 [P]
RewriteRule ^(/infosite-webdav/.*)$ balancer://ies-balancer$1 [P]
# Innerhalb eines Virtuellen Hosts für HTTPS sollte immer der
# Header X-IES-SCHEME auf https gesetzt werden,
# da nur so innerhalb von IES-Applikationen ${system.baseurl}
# richtig aufgelöst wird.
#RequestHeader set X-IES-SCHEME "https"