Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
litespeed_wiki:cache:no-plugin-craft [2018/05/10 15:49]
Lisa Clarke
litespeed_wiki:cache:no-plugin-craft [2018/05/15 20:39] (current)
Jackson Zhang old revision restored (2017/04/14 13:28)
Line 1: Line 1:
-#​REDIRECT ​litespeed_wiki:​cache:​craftcms-lscache-purge-plugin+====== LSCache + Craft CMS Configuration ====== 
 + 
 +LSCache, similar to Varnish cache, is a simpler and more efficient page caching solution built-in to LiteSpeed Web Server. When used in conjunction with Craft CMS, you can expect significant performance gains with a quick and easy setup. Cache management is also made significantly easier and more flexible. Rewrite rules can still be used to customize LSCache'​s behavior. 
 + 
 +Below are some recommended configurations to enable LSCache and get it working with your Craft CMS site(s). 
 + 
 +===== Configure Server/​Virtual Host Level Cache Root And Cache Policy ===== 
 + 
 +Server/​VirtualHost level cache storage needs to be configured properly for your environment. Select your server setup from the **Web Server Configuration** section of our **[[litespeed_wiki:​cache:​common_installation#​web_server_configuration|LiteSpeed Cache Installation Guide]]** and follow the instructions to set the server/​virtual host level cache root and cache policy. 
 + 
 +===== Rewrite rules ===== 
 + 
 +Rewrite rules should be added to your .htaccess file, located in the document root of your website. It may contain the following:  
 +  <​IfModule mod_rewrite.c>​ 
 +        RewriteEngine On 
 +        # Send would-be 404 requests to Craft 
 +        RewriteCond %{REQUEST_FILENAME} !-f 
 +        RewriteCond %{REQUEST_FILENAME} !-d 
 +        RewriteCond %{REQUEST_URI} !^/​(favicon\.ico|apple-touch-icon.*\.png)$ [NC] 
 +        RewriteRule (.+) index.php?​p=$1 [QSA,L] 
 +  </​IfModule>​ 
 +Place rewrite ruls on the top of the existing rules to cache all URLs for 2 mins excluding ''/​admin''​ URLs  
 + 
 +  ########## Begin - Litespeed cache 
 +  <​IfModule LiteSpeed>​ 
 +    RewriteEngine On 
 +    RewriteCond %{REQUEST_METHOD} ^HEAD|GET$ 
 +    RewriteCond %{ORG_REQ_URI} !/admin 
 +    RewriteCond %{ORG_REQ_URI} !/​index.php/​admin ​    
 +    RewriteRule .* - [E=Cache-Control:​max-age=120] 
 +  </​IfModule>​ 
 +  ########## End - Litespeed cache 
 +  
 + 
 +===== Verify Cache Setup ===== 
 + 
 +Open your browsers inspector, by right-clicking and selecting "​Inspector"​ or pressing the F12 key, and refresh the page. Under the "​Network"​ tab look for the HTML page you just loaded and clikc on it to view it's response header.  
 + 
 +In the response header you should see ''​X-LiteSpeed-Cache:​ hit''​ to indicate that the page was served from cache successfully. If you see ''​X-LiteSpeed-Cache:​ miss'',​ reload the page and check again.  
 + 
 +===== Deleting Outdated Cache Files Using A Cron Job ===== 
 + 
 +**Note:** LSWS will now delete expired cache files automatically,​ making this step optional. A cron job can still be set up to help ensure that the cache works as expected, clearing out pages that may have been misconfigured to have a very long TTL. 
 + 
 +A cron job should be set to clear out old cache files that are past the set **Time To Live (TTL)**.  
 + 
 +To do this, you should run the crontab either as the root user or as the cache owner for self management. 
 + 
 +<​code>​crontab -e</​code>​ 
 + 
 +The virtual host cache root directory is normally located in **/​home/​$USER/​lscache** for shared hosting users or **/​tmp/​diskspace** for dedicated servers. 
 + 
 +<​code>​*/​10 * * * * root find /​virtualhost/​cache/​root/​directory/ ​-type f -mmin +8 -delete 2>/​dev/​null</​code>​ 
 + 
 +**Note:** This cron job deletes cached files that are more than 8 minutes old every 10 minutes. Since the cache TTL is set at 120 seconds (2 minutes), it is safe to delete these files as they are way past their TTL. 
 + 
 +===== Troubleshooting ===== 
 +==== I set rewrite rules according to the wiki, but why my admin pages being cached? ==== 
 + The lscache could be incorrectly enabled on server level globally. You can either correct the wrong lscache setting "​Enable Public Cache" to "not set" or "​no"​ according to [[litespeed_wiki:​cache:​common_installation#​web_server_configuration|this recommendations]],​ or just disable global setting for a particular virtual host in .htaccess first before the rewrite rules. 
 + 
 +  ########## Begin - Litespeed cache 
 +  <​IfModule LiteSpeed>​ 
 +   ​RewriteEngine On 
 +   ​CacheDisable public / 
 +   ​RewriteCond %{REQUEST_METHOD} ^HEAD|GET$ 
 +   ​RewriteCond %{ORG_REQ_URI} !/admin 
 +   ​RewriteCond %{ORG_REQ_URI} !/​index.php/​admin ​    
 +   ​RewriteRule .* - [E=Cache-Control:​max-age=120] 
 +  </​IfModule>​ 
 +  ########## End - Litespeed cache 
 + 
 +Note: The "​CacheDisable public /" directive is used to help protect against globally enabled caching. The Rewrite rules will enable cache. 
 
litespeed_wiki/cache/no-plugin-craft.txt · Last modified: 2018/05/15 20:39 by Jackson Zhang