Portal Home > Knowledgebase > LiteSpeed > How to enable Litespeed Cache (LSCache)

How to enable Litespeed Cache (LSCache)

Included in all our hosting plans is LiteSpeed Enterprise. A great feature of the LiteSpeed Enterprise edition is LiteSpeed Cache.  LiteSpeed cache has similar features as Apache mod_cache but implemented in a more efficient way, and works like Varnish. It is an output cache for dynamic contents, so the usage does not limit to PHP pages. Unlike Varnish, it is built into LiteSpeed web server, eliminating one layer of reverse proxy. Hence more efficient for static contents. The uniqueness of LiteSpeed cache is that it uses rewrite rules (either in configuration files or .htaccess) to control its behavior for maximum flexibility.

ENABLING CACHING

By default, caching is disabled on MonsterMegs accounts. To enable caching for your account, you use directives in an .htaccess file. These directives enable you to control precisely which types of content the MonstrMegs server caches, and for how long. You should create the .htaccess file in the base folder for the application that you want to cache.

You can use multiple .htaccess files in different directories to specify different cache control settings for each application.

The following sample configuration demonstrates how to enable caching on a MonsterMegs account:

<IfModule LiteSpeed>
CacheEnable public
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^GET|HEAD$
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteCond %{REQUEST_URI} !login|admin|register|post|cron    
RewriteCond %{QUERY_STRING} !nocache
RewriteRule .* - [E=Cache-Control:max-age=300]
</IfModule>
  • These caching configuration directives must be at the top of the .htaccessfile.
  • You only need to include the HTTP_HOST configuration line if you host more than one domain in the public_html directory (such as your primary domain and a subdomain). Replace example.com with the domain name for which you want to enable caching.
  • If you want to enable caching for multiple domains, separate them with the pipe ('|') symbol. For example:
    RewriteCond %{HTTP_HOST} ^example.com|example.net|example.org [NC]
    

Let's go through this example configuration line by line:

  • The first line checks to make sure the MonsterMegs server is running LiteSpeed.
    Strictly speaking, you do not have to use this line (and its corresponding line at the end of the file), but it is good practice to do so, particularly if you use the .htaccess file on a different server in the future.
  • The second line enables the public cache. MonsterMegs servers have a publicand private cache. Usually, you want to use the public cache, which caches content for multiple clients. The private cache is used to cache content for a single client (for example, personal information for an authorized user).
  • The third line turns on URL rewrite functionality. MonsterMegs servers use rewrite conditions and rules to control caching behavior.
  • The fourth, fifth, and sixth lines use RewriteCond directives to specify what should and should not be cached. The REQUEST_METHOD condition instructs the server to cache GET and HEAD requests, but not POST requests. The REQUEST_URI condition, because it begins with an exclamation mark (!), instructs the server to not cache any page whose URL contains loginadminregisterpost, or cron.
    To add additional strings to the REQUEST_METHOD or REQUEST_URI conditions, use the pipe symbol (|) to separate them.
  • The QUERY_STRING configuration line enables you to see the non-cached version of any page by adding nocache to a query string in the URL. For example, to view the non-cached version of http://example.com/mypage, you could add ?any_field=any_value&nocache to the end of the URL.
  • The RewriteRule directive actually sets the cache duration. In this example, pages are cached for five minutes (300 seconds).

To verify that caching is working correctly on your account, you can examine the raw HTTP headers sent between the browser and web server. (To do this, use a browser plugin that displays the raw headers such as Live HTTP headers for Mozilla Firefox, or the Developer Tools feature in Google Chrome.) When content is served from the cache, the server adds the following line to the HTTP response header:

X-LiteSpeed-Cache: hit

If you do not see this line in the HTTP response header from the server, then the content was not served from the cache.

MORE INFORMATION

For detailed information about caching behavior on a server running LiteSpeed, please visit http://www.litespeedtech.com/support/wiki/doku.php?id=litespeed_wiki:litespeed:cache.

Due to the complexity of certain scripts and web applications, we do not offer support for custom caching rules. For further support on your required rules, please post your requirements in the Litespeed Forums.


Also Read

Powered by WHMCompleteSolution