IIS/ARR Proxy for GeoEvent Server & Stream Service…

Faheem

Third-party software program integrations, resembling IIS Software Request Routing (ARR), could be very difficult as a result of it requires in-depth data of every taking part element. This contains particulars resembling system necessities, exterior dependencies, in addition to adjustments between releases. For that purpose, Esri doesn’t present formal documentation on configuration of non-Esri software program. Nevertheless, for customers who want to leverage ARR with GeoEvent Server, this weblog outlines the configuration we use in-house to implement the foundations for GeoEvent Supervisor and stream providers, initially offered to me by @JoshJoyner from our group. 

Earlier than we begin, make sure that IIS and ARR have been put in. On this weblog, our implementation makes use of IIS 10 and ARR 3. The model of GeoEvent server is 10.9.1.  

Allow Proxy on IIS 

Run IIS because the administrator and navigate to the Software Request Routing Cache. Click on on the Server Proxy Settings on the rightmost toolbar as seen in Determine 1 beneath. After it takes you to the configuration web page for ARR, examine the field subsequent to Allow proxy close to the highest of the web page. Click on on the Apply button to verify it’s saved. 

YujingWu_0-1655992274048.png

Determine 1. Homepage for Software Request Routing Cache  

 

Add Server Variable to IIS 

After proxy is enabled, go to your Default Internet Web site Residence and click on on the icon for URL Rewrite. On the toolbar on the appropriate, underneath Supervisor Server Variables, click on on View Server Variables as seen in Determine 2 beneath. 

YujingWu_1-1655992274049.png

Determine 2. Homepage for URL Rewrite 

After reaching the listing of allowed server variables, click on on the Add button and add a server variable named “HTTP_SEC_WEBSOCKET_EXTENSIONS”.  Navigate again to the homepage of URL Rewrite.  

 

Configure Rule for GeoEvent Supervisor  

Click on on Add Guidelines and choose the Clean rule template throughout the Inbound guidelines part and provides it a reputation. The screenshot beneath (Determine 3) reveals an instance configuration of the rule for GeoEvent Supervisor. The hostname and area must be changed along with your ArcGIS GeoEvent Server’s hostname and area. This rule replaces any a part of a request sample beginning with the trail component ‘geoevent/’. One factor to notice is that within the Server Variables part, we’re changing HTTP_SEC_WEBSOCKET_EXTENSIONS with “;”. It’s because ARR doesn’t help the compression of WebSocket knowledge packets, and we have to take away the header parts of connection requests that allow that functionality. 

YujingWu_0-1655993635550.png

Determine 3. Inbound rule for GeoEvent Supervisor  

After the rule is configured, click on on the Apply button on the appropriate to verify it’s saved. 

 

Configure Rule for Stream Providers

For stream service, an additional step is required to configure ArcGIS Server first. Navigate to your ArcGIS Server Administrator Listing. Go to system -> properties and add a WebSocketContextURL (Determine 4). For example, the URL we use is wss://{GeoEvent hostname}.{GeoEvent area}.com/stream, which corresponds to the sample used within the inbound rule we are going to create for stream service. After the property has been added, click on on any of the stream providers on this server. Its net socket URL ought to mirror the change.  

YujingWu_2-1655993721812.png

Determine 4. System properties of ArcGIS Server  

Go to IIS once more and add one other rule for stream service. The screenshot beneath (Determine 5) reveals an instance of the configuration. Once more, the hostname and area must be changed with along with your GeoEvent Server’s hostname and area.  

YujingWu_3-1655994054214.png

Determine 5. Inbound rule for stream service

After the rule has been created and utilized, go to one of many stream providers and confirm you’ll be able to subscribe to it (Determine 6).  

YujingWu_0-1656080756646.png

 

Testing your IIS/ARR Configuration

Listed below are some instance URLs of GeoEvent Supervisor and stream service earlier than and after being rewritten by IIS.

GeoEvent Supervisor:

  • Exterior URL (that is the URL to enter in a browser to entry GeoEvent Supervisor) 
    • Sample: https://{GeoEvent hostname}.{GeoEvent area}.com/geoevent/supervisor
    • Precise URL instance: https:// realtimegis.esri.com/geoevent/supervisor 
  • Rewritten URL
    • Sample: https://{GeoEvent hostname}.{GeoEvent area}.com:6143/geoevent/supervisor
    • Precise URL instance: https:// realtimegis.esri.com:6143/geoevent/supervisor 

Stream Service:

  • Exterior URL (that is the online socket URL the browser requests to subscribe to) 
    • Sample: wss://{GeoEvent hostname}.{GeoEvent area}.com/stream/ws/providers/{title of the stream service}/StreamServer/subscribe
    • Precise URL instance: wss://realtimegis.esri.com/stream/ws/providers/autos/StreamServer/subscribe
  • Rewritten URL
    • Sample: https://{GeoEvent hostname}.{GeoEvent area}.com:6143/arcgis/ws/providers/{title of the stream service}/StreamServer/subscribe
    • Precise URL instance: https:// realtimegis.esri.com:6143/arcgis/ws/providers/autos/StreamServer/subscribe

Leave a Comment