Overview:
You may have a deployment scenario where you need internal applications available externally, from the internet. A common way to achieve this is through a reverse proxy. In this deployment scenario, incoming requests from the outside world first go to the reverse proxy. The reverse proxy then forwards the request to the appropriate internal server, based on the rules you configure, and sends the response back to the client.
This article will explain how to configure Microsoft Application Request Routing (ARR) as a reverse proxy, for use with Geocortex products. There are a number of reverse proxies that work, but ARR has been tested internally and is known to work with Geocortex applications: Geocortex Essentials, Geocortex Viewer for HTML5, Geocortex Analytics, Geocortex Workflow, Geocortex Reporting and Geocortex Identity Server.
a) You are using the domain mydomain.com, and that it is pointing to an IIS web server.
b) Geocortex products are installed on different servers, which are not currently accessible from the internet.
Solution:
- Download Microsoft Application Request Routing (ARR) from the Microsoft website.
- Install ARR on your internet-facing server.
- Once you have installed ARR, you will need to configure your Server Farm (even if you only have a single server). Open Internet Information Services (IIS) Manager.
- On the right hand side, you will see a new option for Server Farms. Right click it, select Create Server Farm...
- Give your server farm a descriptive name. In this example, I'm using MyEssentialsServer. Leave the Online checkbox checked to bring the farm online.
- Enter the hostname or IP address of your Essentials server, and click the Add button. When you have added your server(s), click Finish.
You may see a warning similar to this when you click Finish:
Click No, we will be creating our own rules in a moment.
- In the tree view on the left, select the server.
- Under the IIS section, double-click URL Rewrite.
- In the URL Rewrite page, click the Add Rule(s) hyperlink in the rightmost pane.
- When the Add Rule(s) window pops up, select Blank rule, and click OK.
- Now it's time to create a rule. Start by giving your rule a name:
- Now set your pattern. This is the trickiest part, because we are using regular expressions, which can be challenging to get right. Below are a list of the most common patterns you will want to match:
- REST: ^Geocortex/Essentials/REST/(.*)
- GVH: ^Html5Viewer/(.*)
- GVS: ^SilverlightViewer/(.*)
- Identity Server: ^Geocortex/IdentityServer/(.*)
- Analytics Client Relay: ^Geocortex/Analytics/(.*)
- Geocortex Workflow: ^Geocortex/Workflow/(.*)
- Geocortex Reporting: ^Geocortex/Reporting/(.*)
- Geocortex Printing: ^Geocortex/Printing/(.*)
- Use the Test Pattern... button to confirm that the pattern you have configured will work with your URLs as expected. Test thoroughly!
- Scroll down to the Action pane. This is where you will define what happens when a request comes in that matches your reverse proxy rule.
- From the dropdown, select Route to Server Farm.
- Set the scheme to http://, or https://, depending on what protocol your server is listening on.
- Select the server farm from the dropdown list.
- Set the Path: to {R:0}
- When you're all done, click apply on the right hand side.
- Now you can test! Try navigating to https://mydomain.com/Geocortex/Essentials/Rest/sites, and you should see your sites REST endpoint.
- Repeat steps 9 through 18 for any other elements you may need to expose, including your Viewers, Identity Server, or Analytics client relay.
- Once you have finished, you will want to make Essentials aware of your Reverse proxy. Please see our article Configure Essentials to use a Reverse Proxy server for instructions.
If you run into issues with these instructions, please contact VertiGIS Support so we can assist you!
Comments
0 comments
Article is closed for comments.