Ich versuche, einen Reverse-Proxy einzurichten, damit nur einige ausgewählte IP-Bereiche einen Proxy für einen internen Host erstellen können, während ich möchte, dass alle anderen Benutzer, die nicht zu den IP-Bereichen gehören, zu unserem internen benannten Host umleiten. In diesem Setup funktioniert der Webservice, während jeder, der nicht über VPN in unser Netzwerk eingebunden ist, nicht zur internen Ressource navigieren kann. Ich habe versucht, dies ohne Glück zum Laufen zu bringen. Meine Teilkonfiguration lautet derzeit wie folgt:
ProxyRequests Off
<Proxy *>
Allow from all
</Proxy>
<Location />
Allow From xxx.xxx.xxx.xxx/24 1xxx.xxx.xxx.xxx/23
Deny From All
ProxyPass http://server.local.corp:8000/
ProxyPassReverse http://server.local.corp:8000/
</Location>
Diese Konfiguration scheint gut zu funktionieren, um zu verhindern, dass andere IP-Bereiche Proxys verwenden können. Ich bin jedoch unklar, wie ich eine Weiterleitungsanweisung für andere Personen hinzufügen kann.
Bearbeiten Ausgehend von der ersten Antwort sieht mein Code jetzt so aus:
<If "%{REMOTE_ADDR} -ipmatch 'xxx.xxx.xxx.xxx/24'">
ProxyPass / http://server.local.corp:8000/
ProxyPassReverse / http://server.local.corp:8000/
</If>
Und Apache löst beim Neustart den folgenden Fehler aus:
ProxyPass cannot occur within <If> section
Action 'configtest' failed.
The Apache error log may have more information.