InstallationInstall Sana Webstore on Web and Database Server

Install Sana Webstore on Web and Database Server

Sana Commerce 9.0
Your connector

Install Sana Enterprise

  Applies to: Sana Enterprise

Sana Enterprise is the integrated e-Commerce solution for large businesses that need to handle high traffic volume and require optimized performance. It is optimized for large installations which demand high availability and scalability.

Sana Enterprise can be installed on multiple servers and use more than 2 cores per server to increase performance and reliability. The number of servers on which Sana Enterprise can be installed is specified in the Sana Commerce license. For more information, see 'Sana Commerce Hosting'.

By configuring Network Load Balancing (NLB) you can distribute the traffic across several servers that are running Sana Enterprise to provide reliability and performance for the Web servers.

In Sana Admin you can see all registered servers and manage the active/passive servers. Multiple servers can be active simultaneously to optimize Sana infrastructure and deliver unsurpassed performance, reliability and availability. For more information, see 'Server Management'.

To install Sana Enterprise on multiple servers:

Step 1: Install Sana Commerce using the Sana Commerce Installer on multiple servers.

  1. Optional: If you have a running Sana Commerce solution and you have already configured your web store, back up your Sana Commerce SQL database before setting up new instances.
  2. Install Sana Commerce on the first server.
  3. Remove the database user from the SQL database created during installation. This is needed for the correct installation of Sana Commerce on other servers.
  4. Repeat steps 2 and 3 on all other servers. Each time when you install a new instance of Sana Commerce overwrite the Sana Commerce SQL database. Do not remove the database user when the last instance of Sana Commerce is installed.
  5. Optional: If you did step 1.1 restore the Sana Commerce SQL database from the backup file.

All instances of Sana Commerce are now installed on all servers.

Step 2: Modify the 'Web.config' file of the Sana Commerce frontend on all servers that are hosting Sana Commerce:

  1. Decrypt the following configuration sections of the 'web.config' file of the Sana Commerce frontend: "connectionStrings", "sanaCommerce/securityKeys" and "system.web/machineKey".

    Execute the following command from the command prompt to decrypt each configuration section of the 'web.config' file:
    aspnet_regiis -pdf [configuration section] [path to the 'web.config' file]
    
    Before executing the command enter the configuration section name you are going to decrypt and the path to the 'web.config' file of the Sana Commerce frontend.

    Example:
    C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis -pdf "sanaCommerce/securityKeys" C:\inetpub\wwwroot\SanaStoreEnterprise\Frontend
    
  2. machineKey and securityKeys should be the same in the 'web.config' file of the Sana Commerce frontend on all servers. You can copy them from the 'web.config' file on the server where you decrypted these sections and paste to the 'web.config' file on all other servers.

  3. Sana Commerce should connect to the same SQL database. Therefore, the SQL Server connection string should be the same in the 'web.config' file of the Sana Commerce frontend on all servers. You can copy it from the 'web.config' file on the server where you decrypted it and paste to the 'web.config' file on all other servers.

  4. Locate the <sessionState> section and change it on all servers to:
    <sessionState timeout="60" mode="SQLServer" allowCustomSqlDatabase="true" sqlConnectionString="LocalSqlServer">
    </sessionState>
  5. Now you need to encrypt the following configuration sections of the 'web.config' file of the Sana Commerce frontend on all servers: "connectionStrings", "sanaCommerce/securityKeys" and "system.web/machineKey".

    Execute the following command from the command prompt to encrypt each configuration section of the 'web.config' file:
    aspnet_regiis -pef [configuration section] [path to the 'web.config' file]
    
    Before executing the command enter the configuration section name you are going to encrypt and the path to the 'web.config' file of the Sana Commerce frontend.

    Example:
    C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis -pef "sanaCommerce/securityKeys" C:\inetpub\wwwroot\SanaStoreEnterprise\Frontend
    

Step 3: The application pool of the Sana Commerce web store should run under a single domain account in IIS on all servers.

Step 4: In IIS for the 'content' folder of the Sana Commerce web store change Anonymous user identity from the default IUSR user to the domain user mentioned in the previous step. This should be done on all Web servers where the Sana Commerce web store is installed.

Step 5: Share the 'files' folder of the Sana Commerce solution either on one of the Web servers or on a separate server. This folder stores the frontend files (Frontend\content\files). The user under whom the application pool of the Sana Commerce web store is running in IIS should have read/write permissions to the 'files' folder.

On all servers that are hosting Sana Commerce you should remove the 'files' folder from your Sana Commerce solution, except the shared 'files' folder, and create the directory symbolic link 'files' instead of the 'files' folder. This directory symbolic link will be used to synchronize all files from the shared 'files' folder on all servers.

  It is recommended to create a new shared 'files' folder on a separate server, which is not a Web server that hosts the Sana Commerce web store, copy the contents of the 'files' folder from your Sana Commerce solution to the shared 'files' folder and create a directory symbolic link 'files' to this shared 'files' folder on all servers that are hosting Sana Commerce. Moreover, if you are looking for high availability, by setting up data redundancy you can eliminate single points of failure. Setting up the high-availability infrastructure of this kind is a responsibility of your system administrators. For more information, read about data redundancy and high-availability cluster.

To create a symbolic link the mklink command is used:

  1. Open the command prompt and navigate to the 'Frontend\content' directory of the Sana Commerce solution. In this directory we will create the 'files' directory symbolic link.
  2. Execute the mklink command using the /D parameter that creates a directory symbolic link:
    mklink /D files <path to the shared 'files' folder>
    
    Example:
    mklink /D files \\server1\files
    

  The 'files' directory symbolic link should be created in the 'Frontend\content' directory of the Sana Commerce solution on all servers.

For more information about the mklink command, see 'Mklink' in the Microsoft Library.

Step 6: Just in the same way as described for the 'files' folder in the previous step share the '@data' (stores index, log and notification files, design packs) and 'SiteMap' (stores sitemap files) folders of the Sana Commerce solution. The user under whom the application pool of the Sana Commerce web store is running in IIS should have read/write permissions to these folders. Create the directory symbolic link for the '@data' and 'SiteMap' folders.

Now Sana Enterprise is installed on multiple servers and it shares the database, index and log files, sitemap, frontend files and design packs.

InstallationInstall Sana Webstore on Web and Database Server