Von Version 4.1
bearbeitet von sas
am 24.01.2022, 12:55
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 5.1
bearbeitet von sas
am 28.03.2022, 11:23
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Inhalt
... ... @@ -14,8 +14,58 @@
14 14  Da {{formcycle/}} vor allem bei der Anmeldung an einem Formular die ursprüngliche Aufruf-URL des Benutzers interpretiert und diese ggf. nicht ermittelt werden kann, ist es nötig, zwischengeschaltete Server entsprechend zu konfigurieren. Hierbei ist darauf zu achten, dass sowohl der HTTP-Header //Host// als auch das verwendete Protokoll (//HTTP //oder //HTTPS//) unverändert weitergereicht werden. Ebenso muss das korrekte Weiterleiten von WebSocket-Verbindungen gewährleistet werden. Als Alternative zu den konkreten Protokollen kann der zwischengeschaltete Server ebenso über //X-Forwarded// Header mitteilen, welches Protokoll die Anfrage ursprünglich verwendet hat.
15 15  {{/info}}
16 16  
17 -== Beispielkonfiguration Apache ==
18 18  
18 +
19 +== Verwenden von //X-Forwarded// Headern für unverschlüsselte Kommunikation ==
20 +
21 +Wenn der zwischengeschaltete Server das Senden von //X-Forwarded// Headern unterstützt und der {{formcycle/}} hostetende Servlet-Container diese Header auswerten kann, kann die Kommunikation zwischen zwischengeschaltetem Server und {{formcycle/}} auch über ein anderes Protokoll erfolgen. Sowohl beim vorgeschalteten Server als auch beim Servlet-Container muss das Verwenden dieser Header konfiguriert sein. Nähere Informationen zur Konfiguration finden sich in der Dokumentation des jeweiligen Produktes.
22 +
23 +=== Konfigurationsbeispiele ===
24 +
25 +Im //Apache// kann das Mitsenden der entsprechenden Header in den für den Reverse-Proxy zuständigen //VirtualHost//s beispielsweise wie folgt konfiguriert werden:
26 +
27 +{{code language="none"}}
28 +//HTTP
29 +RequestHeader set X-Forwarded-Port "80"
30 +RequestHeader set X-Forwarded-Proto "http"
31 +
32 +//HTTPS
33 +RequestHeader set X-Forwarded-Port "443"
34 +RequestHeader set X-Forwarded-Proto "https"
35 +{{/code}}
36 +
37 +Bei //nginx// kann für das Mitsenden der entsprechenden Header in der für den Reverse-Proxy zuständigen Sektion beispielsweise folgende Konfiguration verwendet werden:
38 +
39 +{{code language="none"}}
40 +proxy_pass http://127.0.0.1:8080/formcycle/;
41 +proxy_set_header Host $http_host;
42 +proxy_set_header x-real-ip $remote_addr;
43 +proxy_set_header x-forwarded-proto $scheme;
44 +{{/code}}
45 +
46 +{{velocity}}
47 +##We also have settings for various timeouts in Nginx:
48 +##proxy_connect_timeout 600;
49 +##proxy_send_timeout 600;
50 +##proxy_read_timeout 600;
51 +{{/velocity}}
52 +
53 +Für //Apache Tomcat//-Server muss für das Auswerten der mitgesendeten //X-Forwarded//-Header in der {{code language="none"}}server.xml{{/code}} innerhalb der //Catalina//-Engine der folgende Valve-Eintrag eingefügt werden:
54 +
55 +{{code language="none"}}
56 +<Engine......
57 + <Valve className="org.apache.catalina.valves.RemoteIpValve"
58 + internalProxies="<IP's der vertrauenswürdigen Proxy-Server>"
59 + remoteIpHeader="x-forwarded-for"
60 + protocolHeader="x-forwarded-proto"
61 + protocolHeaderHttpsValue="https" />
62 +</Engine>
63 +{{/code}}
64 +
65 +**Hinweis:** Sollte die Konfiguration der //X-Forwarded//-Header nicht greifen, so ist es unter Umständen notwendig in der Eigenschaft //internalProxies// die IP's der vertrauenswürdigen Proxy-Server zu konfigurieren. Erwartet wird hier eine oder mehrere IP-Adressen (z.B.: 192\.168\.0\.10|192\.168\.0\.11) oder ein IP-Adressbereich, welcher mittels regulären Ausdrucks (z.B.: 169\.254\.\d{1,3}\.\d{1,3}) definiert werden kann.
66 +
67 +== Alternative Beispielkonfiguration Apache ==
68 +
19 19  Für die korrekte Konfiguration eines Apache-Server, welcher als Revers-Proxy agiert, sind drei Punkte relevant und z.B. in der Konfiguration der VirtualHost´s zu hinterlegen:
20 20  
21 21  1. Die Anweisung {{code language="none"}}ProxyPreserveHost On{{/code}} zum Erhalt des ursprünglich aufgerufenen //Host//-Headers
... ... @@ -80,50 +80,4 @@
80 80  </IfModule>
81 81  {{/code}}
82 82  
83 -== Verwenden von //X-Forwarded// Headern für unverschlüsselte Kommunikation ==
84 -
85 -Wenn der zwischengeschaltete Server das Senden von //X-Forwarded// Headern unterstützt und der {{formcycle/}} hostetende Servlet-Container diese Header auswerten kann, kann die Kommunikation zwischen zwischengeschaltetem Server und {{formcycle/}} auch über ein anderes Protokoll erfolgen. Sowohl beim vorgeschalteten Server als auch beim Servlet-Container muss das Verwenden dieser Header konfiguriert sein. Nähere Informationen zur Konfiguration finden sich in der Dokumentation des jeweiligen Produktes.
86 -
87 -=== Konfigurationsbeispiele ===
88 -
89 -Im //Apache// kann das Mitsenden der entsprechenden Header in den für den Reverse-Proxy zuständigen //VirtualHost//s beispielsweise wie folgt konfiguriert werden:
90 -
91 -{{code language="none"}}
92 -//HTTP
93 -RequestHeader set X-Forwarded-Port "80"
94 -RequestHeader set X-Forwarded-Proto "http"
95 -
96 -//HTTPS
97 -RequestHeader set X-Forwarded-Port "443"
98 -RequestHeader set X-Forwarded-Proto "https"
99 -{{/code}}
100 -
101 -Bei //nginx// kann für das Mitsenden der entsprechenden Header in der für den Reverse-Proxy zuständigen Sektion beispielsweise folgende Konfiguration verwendet werden:
102 -
103 -{{code language="none"}}
104 -proxy_pass http://127.0.0.1:8080/formcycle/;
105 -proxy_set_header Host $http_host;
106 -proxy_set_header x-real-ip $remote_addr;
107 -proxy_set_header x-forwarded-proto $scheme;
108 -{{/code}}
109 -
110 -{{velocity}}
111 -##We also have settings for various timeouts in Nginx:
112 -##proxy_connect_timeout 600;
113 -##proxy_send_timeout 600;
114 -##proxy_read_timeout 600;
115 -{{/velocity}}
116 -
117 -Für //Apache Tomcat//-Server muss für das Auswerten der mitgesendeten //X-Forwarded//-Header in der {{code language="none"}}server.xml{{/code}} innerhalb der //Catalina//-Engine der folgende Valve-Eintrag eingefügt werden:
118 -
119 -{{code language="none"}}
120 -<Engine......
121 - <Valve className="org.apache.catalina.valves.RemoteIpValve"
122 - internalProxies="<IP's der vertrauenswürdigen Proxy-Server>"
123 - remoteIpHeader="x-forwarded-for"
124 - protocolHeader="x-forwarded-proto"
125 - protocolHeaderHttpsValue="https" />
126 -</Engine>
127 -{{/code}}
128 -
129 -**Hinweis:** Sollte die Konfiguration der //X-Forwarded//-Header nicht greifen, so ist es unter Umständen notwendig in der Eigenschaft //internalProxies// die IP's der vertrauenswürdigen Proxy-Server zu konfigurieren. Erwartet wird hier eine oder mehrere IP-Adressen (z.B.: 192\.168\.0\.10|192\.168\.0\.11) oder ein IP-Adressbereich, welcher mittels regulären Ausdrucks (z.B.: 169\.254\.\d{1,3}\.\d{1,3}) definiert werden kann.
133 +== ==