Multi-Server Environments

A single server may be sufficient for your PureWeb implementation. If you require multiple servers, you will need to take load balancing and reverse proxies into consideration.

While the current clustering mechanism is still supported for small multi-server environments (2 to 3 servers), it is recommended that a load balancer be used for such environments instead.

A solution to improve management and scalability of multi-server environments is currently being developed for a future release of PureWeb.

Load Balancing

The PureWeb solution has a very strong server affinity requirement. All requests in a given session, including collaboration sessions, need to be directed to a single server.

Traffic can be routed in two different ways, either using unique hostnames, or using a load balancer.

Reverse Proxies

All server status pages depend on relative URLs that point to the base directory. If you are using reverse proxies that modify the path location, you must translate all links in status pages.

First, perform an analysis on the body of certain responses and translate the URLs to the proxied URL, then translate the response to a POST request for the following URLs:

  • /pureweb/app
  • /pureweb/app/*/*/*
  • /pureweb/app/*/*/*/*
  • /pureweb/share
  Not all of the reverse proxies tested work in the standard connection mode (full duplex) provided by Microsoft Silverlight. The alternative is to use the High Performance Polling connection mode instead.

You must parse the body of these responses to find links to the instance URLs. It is enough to look for http://serverinstancehost:8080 for the host machine that is serving as a server instance.

All of the above URLs are of exact length. Do not translate any subdirectories below these URLs.

You only need to translate responses to POST requests, but you can translate others without problems.