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 demonstrate how to configure Microsoft Application Request Routing (ARR) as a reverse proxy, for use with VertiGIS Studio and Geocortex products. Please note that reverse proxies are not considered part of our standard configuration, so setup and maintenance should be handled by your network experts. A variety of reverse proxies are available via third parties, but ARR is the one most tested by VertiGIS since it is included in the Internet Information Services (IIS) of Windows web servers.
a) You are using the domain mydomain.com, which is pointing to an IIS web server.
b) VertiGIS Studio/Geocortex products are not installed on the same machine as a), and are currently inaccessible from the internet.
Example Solution (using Geocortex Essentials):
- 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 common patterns you may want to match:
- Geocortex Essentials REST: ^Geocortex/Essentials/REST/(.*)
- Geocortex Viewer for HTML5: ^Html5Viewer/(.*)
- Geocortex Identity Server: ^Geocortex/IdentityServer/(.*)
- Geocortex Analytics Client Relay: ^Geocortex/Analytics/(.*)
- VertiGIS Studio Web: ^Vertigisstudio/Web/(.*)
- VertiGIS Studio Workflow: ^Vertigisstudio/Workflow/(.*)
- VertiGIS Studio Reporting: ^Vertigisstudio/Reporting/(.*)
- VertiGIS Studio Printing: ^Vertigisstudio/Printing/(.*)
- VertiGIS Studio Mobile: ^Vertigisstudio/Mobile/(.*)
- 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.
Comments
0 comments
Article is closed for comments.