Wiki
Command unknown: diff133644221
 

LSWS Cache + vBSEO (Guest Cache)

Summary

LSWS Cache can be setup for vBSEO with vB cache plugin for guest cache.

Perquisites

vBulletin 3/4
vBSEO 3.6.0
LiteSpeed WebServer 4.0+ (supports public cache)

Procedures

1. Save the following Cache plugin for vBulletin 3/4 to a file say litespeed_cache.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<product productid="lswscache" active="1">
        <title>Litespeed Caching</title>
        <description>settings to make Litespeed page cache working right</description>
        <version>1.0</version>
        <url />
        <versioncheckurl />
        <dependencies>
        </dependencies>
        <codes>
        </codes>
        <templates>
        </templates>
        <plugins>
                <plugin active="1" executionorder="1">
                        <title>Unset session id for guest users</title>
                        <hookname>global_start</hookname>
                        <phpcode><![CDATA[if($vbulletin->userinfo['userid'] <= 0)
{
$vbulletin->session->vars['sessionurl']  = '';
$vbulletin->session->vars['sessionurl_q']  = '';
}]]></phpcode>
                </plugin>
                <plugin active="1" executionorder="1">
                        <title>SET COOKIE FOR LOGGED IN USERS</title>
                        <hookname>login_verify_success</hookname>
                        <phpcode><![CDATA[if ($send_cookies AND $cookieuser)
{
// Cookie user
vbsetcookie('imloggedin', 'yes', true, true, true);
}
else
{
// Not permanent
vbsetcookie('imloggedin', 'yes', false, true, true);
}]]></phpcode>
                </plugin>
                <plugin active="1" executionorder="1">
                        <title>Send X-LiteSpeed-Cache-Control header for logged in users</title>
                        <hookname>style_fetch</hookname>
                        <phpcode><![CDATA[// Do not cache logged in user pages
if ( $vbulletin->userinfo['userid'] )
{
        header('X-LiteSpeed-Cache-Control: no-cache');
};]]></phpcode>
                </plugin>
        </plugins>
        <phrases>
        </phrases>
        <options>
        </options>
        <helptopics>
        </helptopics>
        <cronentries>
        </cronentries>
        <faqentries>
        </faqentries>
</product>

2. Add the xml in 1. to vBulletin

 Log into Admin Console Panel (http://site/forum/admincp)
    Plugins & Products => Add/Import Product)

3. Modify rewrite rules in .htaccess

Rewrite Rules:

RewriteRule ^(.+)$ vbseo.php [L,QSA]

Change to

RewriteRule ^(.+)$ vbseo.php [QSA]

#rules for litespeed cache:
RewriteCond %{HTTP_COOKIE} !vbseo_loggedin=yes
RewriteCond %{HTTP_COOKIE} !bbuserid=
RewriteCond %{HTTP_COOKIE} !bbpassword=
#RewriteCond %{ORG_REQ_URI} ^/(index\.php|)$
RewriteCond %{REQUEST_METHOD} ^HEAD|GET$
RewriteCond %{QUERY_STRING} ^$
RewriteRule (.*) - [L,E=Cache-Control:max-age=60]

4. Enable and Set up Cache Policy in LSWS

In LiteSpeed (v4.1.2 or later) Admin CP → Configuration → Server → Cache

Storage Path: /diskcache
Max Object Size: 128K

Cache Policy
Enable Cache:    No
Cache Expire Time (seconds):    Not Set
Cache Request with Query String:    Yes
Cache Request with Cookie:    Yes
Cache Response with Cookie:    Yes
Ignore Request Cache-Control:    Yes
Ignore Response Cache-Control:    Yes
Enable Private Cache:    No
Private Cache Expire Time (seconds):    
Do-Not-Cache URL(s):

Note:

  1. Cache storage can be set to /dev/shm/diskcache to avoid disk I/O wait if enough memory can be spared.
  2. Cache resource with size less than 128KB.
  3. For cached request, “X-LiteSpeed-Cache: hit” response header should be seen. IOW, if no such entry in the response header, the response is not cached by LSWS.

Crate a cronjob to clean up stale cache

*/10 * * * * find /diskcache -type f -mmin +10 –delete

Note: This cron job clean up stale cache storage every 10 minutes.

Add entries to /etc/rc.local

   echo "mkdir /diskcache && chmod nobody.lsadm" >> /etc/rc.local
   echo "/diskcache && chmod 770 /diskcache" >> /etc/rc.local
  

Note: this is to make sure cache directory gets created when server is booted up.

 
litespeed_wiki/litespeed/cache/vbulletin.txt · Last modified: 2012/05/07 21:56 (external edit)