1. Home
  2. Mapservers
  3. MapEdit TileServer
  4. URL Rewrite / Reverse Proxy einrichten
  1. Home
  2. Installation
  3. URL Rewrite / Reverse Proxy einrichten
  1. Home
  2. MapEdit Mobile
  3. URL Rewrite / Reverse Proxy einrichten
  1. Home
  2. MapEdit Portal
  3. URL Rewrite / Reverse Proxy einrichten

URL Rewrite / Reverse Proxy einrichten

Bei der Installation von MapEdit Mobile, MapEdit Portal oder MapEdit TileServer kann es notwendig sein für den IIS ein URL Rewrite / Reverse Proxy einzurichten.

Das ist dann notwendig wenn man den Port 8080 von Tomcat/Wildfly nicht freigeben will, oder kann. Zudem wenn die i.d.R. notwendige SSL Verschlüsselung und Einbindung eines dafür notwendigen Zertifikates am IIS / Webserver eingerichtet wird.

Installation

Die Systemvorraussetzungen IIS für MapEdit prüfen und Grundinstallation von MapEdit Mobile, Portal, TileServer durchführen. Anschließend müssen noch zwei Setups von Microsoft ausgeführt werden.

Hier die Downloadlinks:

https://www.iis.net/downloads/microsoft/url-rewrite

https://www.iis.net/downloads/microsoft/application-request-routing

Alternativ haben wir bei uns im Software Repository Downloadbereich die Setups und auch Beispiele für die Einstellungen in der web.config bereitgestellt.

Download URLrewrite Verzeichnis

Konfiguration im IIS

Application Request Routing aktivieren

Nach der Installation im IIS das Application Request Routing aktivieren. Das befindet sich im IIS Manager direkt oben am Server, oder ist auf der Webseite einzustellen

Application Request Routing Cache –> Rechte Seite –> Server Proxy Settings

IIS Application Request Routing aktivieren

Dort den Haken bei Enable Proxy aktivieren

Server Variablen HTTP encode aktivieren

Im IIS das Icon URL Rewrite auf der Default Webseite öffnen. Hier kann man die Server Variablen einsehen.

Server Variablen

Auf der rechten Seite auf „Add“ um diese beiden hinzuzufügen:

HTTP_ACCEPT_ENCODING

HTTP_X_ORIGINAL_ACCEPT_ENCODING
Server Variable hinzufügen

Web.config anpassen

Nachdem diese beiden Variablen hinzugefügt wurden, muss die web.config des Servers angepasst werden. Diese befindet sich i.d.R. in dem Verzeichnis:

web.config

Bitte zuerst eine Sicherung der Datei machen.

Beispiel / Vorlagen

Wir haben für MapEdit Mobile und MapEdit TileServer zwei Vorlagen / Beispiele im Software-Repository im Verzeichnis MapEdit/Fullinstallation/URLrewrite abgelegt.

Vorlagen / Beispiele für URL Rewrite

Beispiel: Vorlage web.config für MapEdit Mobile / TileServer

Hierbei ist es so dass alle Anfragen welche auf http(s)://Servername/TileServer/ ankommen, auf http://localhost:8080/TileServer/ weitergeleitet werden. Dh. der IIS leitet die Anfragen an den Tomcat/Wildfly weiter.

<!-- Die "Rule1" sagt aus, dass alles was mit 'TileServer' rein kommt wird auf localhost:8080/TileServer weiter geleitet -->

<rule name="ReverseProxyInboundRule1" stopProcessing="true">
  <match url="TileServer/(.*)" />
    <action type="Rewrite" url="http://localhost:8080/TileServer/{R:1}" />
  <serverVariables>
   <set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" />
   <set name="HTTP_ACCEPT_ENCODING" value="" />
  </serverVariables>
</rule>

Das Gleiche passiert bei der zweiten Regel in diesem Beispiel, für MapEdit Mobile.

<!-- Die "Rule2" sagt aus, dass alles was mit 'MapEdit' rein kommt wird auf localhost:8080/MapEdit weiter geleitet -->
<rule name="ReverseProxyInboundRule2" stopProcessing="true">
  <match url="MapEdit/(.*)" />
    <action type="Rewrite" url="http://localhost:8080/MapEdit/{R:1}" />
  <serverVariables>
   <set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" />
   <set name="HTTP_ACCEPT_ENCODING" value="" />
  </serverVariables>
</rule>

Und als ausgehende Regel wird eingestellt das alles was von http://localhost:8080 kommt auf die URL des IIS umgeleitet wird, in diesem Beispiel http://kundenname.mapedit.de/

<outboundRules>
  <rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1">
   <match filterByTags="A, Form, Img" pattern="^http(s)?://localhost:8080/(.*)" />
     <action type="Rewrite" value="http{R:1}://kundenname.mapedit.de/{R:2}" />
  </rule>
      <preConditions>
       <preCondition name="ResponseIsHtml1">
         <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
       </preCondition>
      </preConditions>
</outboundRules>
</rewrite>
</system.webServer>
</configuration>

Die von uns bereitgestellten Beispiel web.config müssen die URLs entsprechend der Installationsumgebung noch angepasst werden. Diese ersetzen dann die vorhandene web.config der Webseite / IIS.

Updated on Dezember 17, 2020