... |
... |
@@ -91,13 +91,42 @@ |
91 |
91 |
Im //Apache// kann das Mitsenden der entsprechenden Header in den für den Reverse-Proxy zuständigen //VirtualHost//s beispielsweise wie folgt konfiguriert werden: |
92 |
92 |
|
93 |
93 |
{{code language="none"}} |
94 |
|
-//HTTP |
95 |
|
-RequestHeader set X-Forwarded-Port "80" |
96 |
|
-RequestHeader set X-Forwarded-Proto "http" |
|
94 |
+<VirtualHost www.example.com:80> |
|
95 |
+ ... |
|
96 |
+ RequestHeader set X-Forwarded-Port "80" |
|
97 |
+ RequestHeader set X-Forwarded-Proto "http" |
|
98 |
+ ... |
|
99 |
+ # Weiterleitung über HTTP |
|
100 |
+ ProxyPass / http://192.168.0.1/ |
|
101 |
+ ProxyPassReverse / http://192.168.0.1/ |
|
102 |
+ ... |
|
103 |
+ # Weiterleitung der WebSocket-Verbindung über WS |
|
104 |
+ RewriteEngine on |
|
105 |
+ RewriteCond %{HTTP:Upgrade} websocket [NC] |
|
106 |
+ RewriteCond %{HTTP:Connection} upgrade [NC] |
|
107 |
+ RewriteRule ^/?(.*) "ws://192.168.0.1:80/$1" [P,L] |
|
108 |
+</VirtualHost> |
97 |
97 |
|
98 |
|
-//HTTPS |
99 |
|
-RequestHeader set X-Forwarded-Port "443" |
100 |
|
-RequestHeader set X-Forwarded-Proto "https" |
|
110 |
+<IfModule mod_ssl.c> |
|
111 |
+ <VirtualHost www.example.com:443> |
|
112 |
+ ... |
|
113 |
+ SSLEngine on |
|
114 |
+ SSLProxyEngine On |
|
115 |
+ ... |
|
116 |
+ RequestHeader set X-Forwarded-Port "443" |
|
117 |
+ RequestHeader set X-Forwarded-Proto "https" |
|
118 |
+ ... |
|
119 |
+ # Weiterleitung über HTTPS |
|
120 |
+ ProxyPass / http://192.168.0.1/ |
|
121 |
+ ProxyPassReverse / http://192.168.0.1/ |
|
122 |
+ ... |
|
123 |
+ # Weiterleitung der gesicherten WebSocket-Verbindung über WSS |
|
124 |
+ RewriteEngine on |
|
125 |
+ RewriteCond %{HTTP:Upgrade} websocket [NC] |
|
126 |
+ RewriteCond %{HTTP:Connection} upgrade [NC] |
|
127 |
+ RewriteRule ^/?(.*) "wss://192.168.0.1:443/$1" [P,L] |
|
128 |
+ </VirtualHost> |
|
129 |
+</IfModule> |
101 |
101 |
{{/code}} |
102 |
102 |
|
103 |
103 |
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: |
... |
... |
@@ -121,7 +121,7 @@ |
121 |
121 |
{{code language="none"}} |
122 |
122 |
<Engine...... |
123 |
123 |
<Valve className="org.apache.catalina.valves.RemoteIpValve" |
124 |
|
- internalProxies="<IP's der vertrauenswürdigen Proxy-Server>" |
|
153 |
+ internalProxies="<optionale Angabe, siehe unten>" |
125 |
125 |
remoteIpHeader="x-forwarded-for" |
126 |
126 |
protocolHeader="x-forwarded-proto" |
127 |
127 |
protocolHeaderHttpsValue="https" /> |
... |
... |
@@ -128,4 +128,4 @@ |
128 |
128 |
</Engine> |
129 |
129 |
{{/code}} |
130 |
130 |
|
131 |
|
-**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. |
|
160 |
+Der Default für den Parameter [[//internalProxies //>>https://tomcat.apache.org/tomcat-9.0-doc/api/org/apache/catalina/filters/RemoteIpFilter.html||rel=" noopener noreferrer" target="_blank"]]ist //10/8, 192.168/16, 169.254/16, 127/8, 172.16/12, and 0:0:0:0:0:0:0:1//. Falls die IP(s) des vertrauenswürdigen Proxy-Server nicht damit abgedeckt sind, müssenn diese in Form eines Regulären Ausdrucks angegeben werden. 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. |