Configuring VOSE to run behind IIS (SSL)
The steps involve configuration of rewrite rules in IIS and changing the Voyager URL and context path parameter in Voyager.
For proper UI functionality when using IIS, Websocket Protocol for IIS and a IIS Cache-Control settings are required.
Enable WebSocket Protocol for IIS
On the taskbar, click Server Manager.
In Server Manager, click the Manage menu, and then click Add Roles and Features.
In the Add Roles and Features wizard, click Next. Select the installation type and click Next. Select the destination server and click Next.
On the Server Roles page, expand Web Server (IIS), expand Web Server, expand Application Development, and then select WebSocket Protocol. Click Next.
On the Select Features page, click Next.
On the Confirm installation selections page, click Install.
On the Results page, click Close.
Two IIS modules are required for this configuration
URL Rewrite Module
Application Request Routing (ARR)
Configure IIS Cache Settings
Select HTTP Response Headers option:
Add a new configuration by clicking the “Add…” button on the right hand side of the page.
Add the following settings:
Name: Cache-Control
Value: no-cache
Install ARR and URL Rewrite modules in IIS
To install ARR and URL Rewrite modules in IIS please navigate to the following links:
http://www.iis.net/downloads/microsoft/application-request-routing
http://www.iis.net/downloads/microsoft/url-rewrite
ARR Configuration
The next step is a configuration of the reverse proxy functionality using ARR module.
From the IIS Manager, select a server node and then click the double click the ARR feature.
Next, select “Server Proxy Settings…” from the menu on the right.
Next, Enable proxy
Enable Allowed Server Variables
Select the Default website (or relevant site for your organization)
Next, double click the URL Rewrite Module
From the menu on the right, select “View Server Variables…”
Add the following server variables to the allowed server variables list using the “Add” button on the right
HTTP_ACCEPT_ENCODING
HTTP_SEC_WEBSOCKET_EXTENSIONS
Creating Routing Rules with URL Rewrite Module
From the IIS Manager, select a Default Web Site and then click on the URL Rewrite feature.
In the Actions pane on the right hand side click Add Rules...
In the Add Rules dialog open the new Blank Rule
Configure the following settings:
Pattern:
^voyager(.*)
Server Variable:
HTTP_ACCEPT_ENCODING
Rewrite URL:
http://<FQDN>:8888/voyager{R:1}
Server Settings
Server site.dex:
BaseURL=https\://windows10/voyager/
Voyager.vmoptions
-Dport=8888
-Dcontext.path=voyager
-Dinternal.url=https://windows10/voyager/
For Reference:
C:\inetpub\wwwroot\web.config
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="HTTPS Redirect" stopProcessing="true">
<match url="(.)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" />
</rule>
<rule name="voyager localhost">
<match url="^voyager(.)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<serverVariables>
<set name="HTTP_ACCEPT_ENCODING" value="True" />
</serverVariables>
<action type="Rewrite" url="http://WINDOWS10:8888/voyager{R:1}" />
</rule>
<rule name="hq localhost">
<match url="^hq(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<serverVariables>
<set name="HTTP_ACCEPT_ENCODING" value="True" />
</serverVariables>
<action type="Rewrite" url="http://windows10:8000/hq{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>