Using an External Web Server for Content Playback

In this section:

Overview

The EchoSystemServer software comes bundled with a java-based web server called Jetty. Jetty is responsible for serving up all web UI elements and product downloads, processing API calls, and providing EchoPlayer elements for Rich Media presentation playback. Jetty is enabled by default and is capable of efficiently handling requests on small or low-load deployments. However, if you have a large number of users accessing the system simultaneously, we highly recommend offloading all playback requests to an external web server. Jetty will still be running on the application host for API requests and the web UI, but configuring the playback components to be offered by an external server can greatly reduce the overall load on the system and result in improved performance.

The following web server technology is supported for this use:

  • Microsoft IIS 6
  • Microsoft IIS 7
  • Apache 
The EchoSystemServer will also work with NGINX, and while this document covers the base configuration of this product, it is not officially supported at this time. The following instructions cover how to configure these software packages for use with ESS content playback.

Define and Share the Active Content Directory

The Active Content Directory is defined as the location of all available Echo content that can be viewed by users. This setting is specified in the EchoSystem Server under System > System Settings > Active Echo Settings > Content Folder. The content can be located on a drive local to the ESS, on a mounted SMB/CIFS file share, or on mounted NAS/SAN storage. Regardless of where this directory is physically located, this folder must be accessible by both your external web server and the ESS host.

Additionally, in order for the external web server to find and serve up Echo content delivered by the ESS, your active content directory network share must be one that the external web server has read and write access to. 

Consult your operating system’s documentation for configuring file shares, or contact Echo360 Technical Support for guidance.

Do Not Refer to Mapped Drives

It is important that you never use mapped drives when configuring storage locations. If configured incorrectly, these are not persistent across restarts, and the local system account may not have access to the mapped drives in the first place. If you are using a SAN with system mounted volumes, the use of such a drive letter is acceptable; otherwise, you are likely to run into errors if you use this feature of Windows. When in doubt, always use a UNC path for networked storage.

On Ports and Protocols

When setting up an external web server, you can configure either HTTP or HTTPS access. The port used is your choice though we recommend sticking to standard ports (80, 443, 8080, 8443 etc.). The EchoSystem Server is typically configured to offer up content over HTTP on port 8080 or HTTPS on port 8443. The application itself always runs over HTTPS. Reference the documentation for your external web server for configuring ports and protocols.

While not recommended, it is possible to configure an external web server to run on the same physical host as the ESS. If this is done, it's important to note that the external web server cannot run on the same protocol and port as the application. In other words, if the ESS application is configured to run on HTTP/8443, then the external web server cannot use port 8443. A different port, such as 443, must be used in this case.

Best Practice: Serve Content Over HTTPS

For security reasons, recent versions of major web browsers block "mixed mode" content - in other words, HTTP content served in an HTTPS wrapper. This will cause certain features of the EchoSystem, such as editing, to be inaccessible or break entirely. Therefore, we highly recommend serving content over HTTPS. Not only does it prevent these problems from occurring, but it's a far more secure way of serving content. The ESS also has a built-in mechanism to re-direct users who access content over HTTP to HTTPS if the switch is made. To enable this on the ESS side set the Protocol option in the Application Network Settings area of the System tab in the ESS to "All HTTPS".

Note: Mixed mode content is no longer supported as of ESS 5.4 SP3.

SSL Certificate Required for HTTPS

If you enable HTTPS on your external web server, you'll need to obtain an SSL certificate for the host. Refer to your external web server documentation on how to install a certificate.

The following sections cover individual configuration of the different external web server types.

Configuring an IIS Web Server

These instructions assume that you have already installed the Internet Information Services (IIS) features on the Windows host and have the service running with the default configuration.

Begin by opening the Internet Information Services (IIS) Manager, located under Control Panel > Administrative Tools.

  1. On the left panel, expand your domain (or computer name) in the list.
  2. Expand the Sites option to reveal your Default Web Site.
  3. Right-click on Default Web Site, then select the Add Virtual Directory option.
  4. In the Alias box, enter "echocontent" (without quotes).
  5. Use the ... button or the Physical Path field to populate the path of the network share for your active content directory.
  6. If your active content directory network share requires a domain account or elevated permissions to access, click on the Connect As button to enter the credentials of a specific user account that has full permission to access the share.
  7. Once all fields are populated, click on  Test Settings to verify your settings are correct.
  8. When finished, click OK.
  9. The "echocontent" alias should now appear on the left panel beneath Default Web Site. Expanding this option should show the sub-folders that exist in your active content directory.  

Once you have verified the configuration, you'll need to restart the site for the changes to take effect. Click on the Default Web Site option in the left panel, and then Restart in the right panel under Manage Web Site. Continue to the Enabling an External Web Server on the ESS section below to finalize configuration.

Configuring an Apache Web Server

These instructions assume that you have already installed the appropriate Apache web server packages, along with the mod_alias module, and have the service running with the default configuration.

  1. Make a backup copy of the existing httpd.conf file (typically located under /etc/httpd/conf)

  2. Add the following to your httpd.conf file:

    Alias /echocontent "/var/www/echocontent"
    <Directory "/var/www/echocontent">
        Options Indexes MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
  3. Change both "/var/www/echocontent" paths to the path of the mount point you created for your Echo active content directory (quotations must be left in place).
  4. Save the file.
  5. Restart the Apache web server service (/etc/init.d/httpd restart).

Once finished, continue to the Enabling an External Web Server on the ESS section below to finalize configuration.

Configuring an NGINX Web Server

These instructions assume that you have already installed the appropriate NGINX packages and have the service running with the default configuration. 

  1. Make a backup copy of your configuration file before proceeding. By default, the configuration file is named default.conf and placed in the /etc/nginx/conf.d directory.

  2. Add the following to your default.conf file between the server { } block:

    location /echocontent {
            alias /usr/share/nginx/echocontent;
    }
  3. Change /usr/share/nginx/echocontent to the path of the mount point you created for your Echo active content directory.

  4. Save the file.

  5. Restart the NGINX service.
Once finished, continue to the Enabling an External Web Server on the ESS section below to finalize configuration.

Enabling an External Web Server on the ESS

Once the configuration of your external web server has been completed, the final setup it to enable content playback to be served through it.

  1. In the ESS interface, navigate to System > System Settings.
  2. Click the Edit button. Scroll down to the Active Echo Settings and make the following modifications

    FieldInput
    Web ServerSelect External from the drop-down list.
    Host NameEnter the FQDN of your external web server host.
    Port (HTTPS)Specify the port that HTTPS is using on your external web server.
    HTTP PortSpecify the port that HTTP is using on your external web server (specify 80 if not used).
    Base URL PathEnter "echocontent" (without the quotation marks)
    Content FolderThis field should already be populated with the location of the active content folder relative to your ESS.
  3. When finished, scroll to the bottom of the page and click Save.
  4. You will then be prompted to restart the EchoSystem Server service. 

After the ESS service has been restarted, verify that Echo content playback works using your new external web server configuration.