Revindex Storefront

Web farm

This is an advanced topic for businesses running multiple servers. You can skip this topic if you're running a single machine.

Revindex Storefront supports large Web farm installation (running across multiple Web servers) allowing you to scale to millions of customers. Web farm is a complex setup and should only be configured by experienced administrators with strong understanding of network, IIS, ASP.NET and DNN. Improper configuration of Web farm will result in instability of your system.

A common form of Web farm setup involves directing the user to a random or weighted Web server for each incoming Web request. Therefore, you need to ensure every Web server is capable of accessing the session information of the user, otherwise the user may see inconsistent data navigating from one page to another.

By default, as of version 6.3.1, the Storefront uses ASP.NET session to store state information (in older versions, the Storefront uses DNN data cache object). This means your Web farm needs to be configured to use State Server or SQL Server mode to preserve session across machines. Other equivalent variation of this concept that allows sharing of session information out-of-process may also work (e.g. Windows Azure has several equivalent implementations of session storage modes such as TableStorage, SQL Azure, Windows Azure Caching, etc. as well as other 3rd party session providers like NCache, etc.).

If you're unable to change your session provider, you can try to shift the session responsibility from ASP.NET to DNN by configuring the Storefront to persist session information to DNN's data cache object. In this case, you will also need to ensure your DNN cache mode is using an out-of-process caching provider (e.g. AppFabric, NCache, Memcached, etc.). To configure the Storefront to use DNN data cache object, you need to add the key to your Web.config's appSettings section (please note that every Web server must be configured the same way):

<add key="SessionProvider" value="dnncache" />

Finally, if you're unable to employ any of the session storage modes above, you can configure your load balancer to direct all incoming requests from the same source IP address to the same Web server. This sticky IP routing approach alleviates any need to share session since it essentially operates as one Web server from the user standpoint.


Powered by Revindex Wiki