Using IIS and ARR as a Reverse Proxy in FME Server

Liz Sanderson
Liz Sanderson
  • Updated

FME Version

Introduction 

This article provides instructions for setting up FME Server to use Microsoft IIS web server as a reverse proxy. In this case, we want our web URLs to use the default Microsoft IIS web server port (80) but we also want requests to be forwarded automatically to FME Servers Web Application Server. This is an example of using a reverse proxy with FME Server.

Please be advised that these instructions were tested using FME Server 2021 and IIS 10 with ARR 3.0 on Windows Server 2016 Datacenter but they should also apply to older versions.


Prerequisites

The following should be installed for the reverse proxy setup using Microsoft Web Platform Installer . It is a free tool that makes it simple to download and install the latest components of the Microsoft Web Platform.

 

FME Server should be installed and configured to use a different port than IIS.

Please note that we are unable to assist you in configuring ARR for FME Server if these prerequisites are not met. Please contact Microsoft Help and Support if you encounter any difficulties installing and configuring IIS or the ARR module.

 

Step-by-Step Instructions 

Part 1: Configure ARR in IIS

In this example, IIS is configured to use port 80 and FME Server's Web Application Server port is 8080. It is assumed that all components are installed on the same machine, but this is not required.


1.png
This screenshot was taken in FME Server 2021, the interface may be different but the concepts are the same. 

If you didn’t update the port used by FME Servers Web Application Server during installation, follow the documentation to change the port before proceeding with these instructions. 

  1. In IIS Manager, connect to the IIS server [in this case, localhost].

  2. Highlight the server in the "Connections" pane.

  3. Double-click "Application Request Routing Cache".

    2.png

  4. Click "Server Proxy Settings" under the "Proxy" heading in the "Actions" panel.

    3.png

  5. Tick the "Enable proxy" checkbox, untick the option “Reverse rewrite host in response headers” [it would be ticked by default] and leave the default values in place.

  6. Click Apply.

    2024-03-13_11-57-19.png

  7. Optionally change the "Time-out (seconds)" to an appropriate value (see note below).

    5.png

  8. In the "Connections" pane, under "Sites", highlight the "Default Web Site." (The Default Web Site may be disabled for security reasons. In this case, you will need to configure a new website on port 8080).

  9. Double-click the "URL Rewrite" feature. 

    6.png

  10. Click "Add Rule(s)..." in the "Actions" pane.

  11. Select Inbound Blank Rule then click OK

    7.png

In the the Edit Inbound Rule dialog, fill out the following fields:

a. Name: fmeserver
b. Match URL > Pattern: (fme.+)
c. Action>Action Properties> Rewrite URL: http://<host>:<port>/{R:0} (e.g. http://localhost:8080/{R:0})

8.png
  1. Apply the rule changes.

IIS should now forward any requests with "fme" in the URL to FME Server.

 

Note: When setting the time-out value in IIS, the default value of 120 seconds (2 minutes) is fine for most cases. However, if your users are going to be synchronously running jobs that may take more than 2 minutes to complete, it is recommended that you increase the time-out value to ensure that the request does not time out before it has finished.
 

(Optional) Configure for HTTPS

To access FME Server via HTTPS, an additional setup is needed on Microsoft IIS. If this is not required, you should skip to part 2. The following instructions detail how to enable SSL by creating a self-signed certificate. If you’d like to install a certificate provided by a certificate authority, the steps may vary. 

  1. Open IIS Manager, click on the server listed under the “Connections” pane.

  2. Under the server homepage double-click the “Server Certificates” feature.

    9.png

  3. Under Actions select ‘Create Self-Signed Certificate…’

  4. Fill in the required fields; specify a cert name and leave the Certificate store as “Personal”. 

  5. Select OK.

    10.png

  6. Under the “Connections” pane, select ‘Default Web Site’ under Sites.

  7. Under Actions click on ‘Bindings…’

  8. Click ‘Add…’

  9. Change the Type to https. This will reveal a new parameter where you can select the certificate you created in the previous steps.

  10. Click “OK” .

    11.png
     

Part 2: Verify the Configuration 

  1. Check the IIS web server

    Go to http://localhost [use https instead of http if SSL is configured] on the server itself. On a new installation, an IIS splash screen will be displayed if the web server is configured correctly.

    12.png
     

  1. Check FME Server Web Application Server

Go to http://<host>:<FME-Web-App-Server-port> or http://localhost:<FME-Web-App-Server-port> [use https instead of http if SSL is configured] on the server itself. In this tutorial, port 8080 was used. This should redirect to /fmeserver (i.e. the FME Server Web Interface) if IIS has been correctly configured as the reverse proxy for FME Server.

13.png
 

  1. ​Check the forwarding rule

If FME Server is working, you can now check whether the forwarding is happening correctly. Go to http://localhost/fmeserver [use https instead of http if SSL is configured] on the server itself (or any servlet starting with "fme") and you should see the same FME Server web interface as shown above.

14.png
 

Part 3: Configure FME Server

Update Service URLs

FME Server's Web User Interface uses various service URLs when submitting requests to each service. These service URLs must be updated to use the hostname of the reverse proxy:

  1. Log in to FME Server under an admin account.

  2. Locate Services under Admin > System Configuration > Network & Email.

  3. Expand the “Services” section.

  4. Click the “Change All Hosts” button.

  5. Update the hostname for all Service URLs to use the hostname of the reverse proxy.

    15.png

 This screenshot was taken in FME Server 2021, the interface may be different but the concepts are the same.
 

Check workspace processing and publication

  • Confirm that FME Server can run a workspace with Service: Job Submitter

  1. Login to the FME server Web User Interface with the administrator account that you created during installation.

  2. Click Run Workspace.

  3. On the Run Workspace page, specify:

a. Repository: Samples
b. Workspace: austinApartments.fmw
c. Service: Job Submitter

  1. Click Run.

  • Similarly, confirm that FME Server can run the workspace with Service: Data Streaming 

  • Confirm that FME Server can run the workspace with Service: Data Download 

  1. On the Run Workspace page, specify:

a. Repository: Samples
b. Workspace: austinDownload.fmw
c. Service: Data Download

  1. Click Run and upon job completion, click the “Data Download URL” to download the result. Ensure that the URL uses the reverse proxy hostname.

16.png

 This screenshot was taken in FME Server 2021.2, the interface may be different but the concepts are the same. 

  • Confirm that you can still publish workspaces from FME Desktop using the URL that contains the reverse proxy hostname. 

 

Troubleshooting

If IIS appears to be set up correctly, but FME Server is still not working, please review How to Create a Great FME Server Support Case and contact the Safe Software Support .
 

Topic Monitoring and WebSocket Server

In FME Server 2017 (and newer) you may see an error message like "There was an error connecting to monitoring service" when you open the Topic Monitoring page. An additional rule is needed to allow for connections to Topic Monitoring (and the WebSocket server) to work:

  1. Name: fme websocket

  2. Match URL > Pattern: (websocket.+)

  3. Action > Rewrite URL: ws://<host>:7078/{R:0} (e.g. ws://localhost:7078/{R:0})
     

Large file uploads

If users of your FME Server installation have trouble uploading large files, the maximum request size limit can be changed by modifying the setting in IIS Manager. This is done as follows:

  1. Connect to the server.

  2. Highlight the server in the "Connections" pane.

  3. Double-click ”Request filtering”.

 
17.png
  1. In the "Actions" pane, click "Edit Feature Settings..."

  2. Modify the "Maximum allowed content length" field to the desired maximum size in bytes. NOTE: The default maximum content size is 30 MB.
    18.png

Was this article helpful?

Comments

0 comments

Please sign in to leave a comment.