This document describes how to use Checkbox 7 On-Premise in a web farm / load balanced environment. Using this approach provides greater performance, scalability, and, in some cases, redundancy and failover that a single server approach won't provide.
Please note: These instructions can be used with any On-Premise version of Checkbox and are provided as-is. Support for web farms is provided to Checkbox Enterprise customers only. Finally, please make sure that you are in compliance with the Checkbox license agreement with any environment that you set up.
Sample Web Farm Architecture
Web farm environments can vary greatly in terms of complexity. For the purposes of this document, the following sample architecture will be used. It assumes a virtual or hardware appliance is handling traffic for 1 or more web servers that are running the Checkbox 7 web applications (API, Admin App, Take Survey), a distributed caching provider, and another non-load balanced server that is running Microsoft SQL (with the Checkbox 7 databases) and also the Checkbox 7 Service (the windows service used for sending emails and invitations).
Prerequisites and Requirements
You will need the following to properly setup Checkbox in a web farm:
- A Checkbox database that is NOT hosted on one of the web servers in your web farm.
- A server to run the Checkbox Service windows service. This cannot run on a load balanced server.
- A distributed caching provider using Memcache or Redis.
- A virtual or hardware load balancer. (AWS Elastic Load Balancer is supported for environments using Amazon Web Services)
- A properly configured domain for your web farm. This is the domain that will be used to access Checkbox.
After you have completed the prerequisites above:
On one of your web farm web servers:
- Run the Checkbox installer on one of your web servers and install all 3 web applications (API, Take Survey, Admin App). Again, do NOT choose to install thee Checkbox Service. During the setup of the web apps, specify the domain that you are using for your web farm (as opposed to the direct URL for the server) and complete the installation.
- Edit the API\configs\caching.config as described in setting up a distributed caching provider.
- Set the machine keys on your IIS site to be static as described in this document. Make note of these as we will use them on the other servers.
On your additional web farm servers:
- Copy the Checkbox folders (API, app-take-survey, app-admin) to your additional web servers. Make sure that IIS is properly configured and has the same IIS site structure as your first server.
- Set the machine keys to be the same as the first server.
Once the above steps are complete, test your installation's Checkbox Admin App. Setup should be complete.