CirruxCache: Advanced configuration sample
That's it! This whole blog is cached and directly delivered by CirruxCache (only static files were cached before). My origin server is a tiny eeebox connected through my personal ISP.
So this configuration is a good challenge to offload my tiny web server as much as possible.
I think this is a good opportunity to show an example of a configuration which is a little bit more evolved.
The point is, I cannot set the same cache TTL for the whole website, and actually, I want to cache several websites...
Finally, I created a google groups to centralize all help requests. So if you need help, go to http://groups.google.com/group/cirr... or send an email to cirruxcache 'at' googlegroups 'dot' com.
# URL mapping
urls = {}
base = (
'/_admin/(.*)', 'Admin',
'/_store/(.*)', 'Store',
'/_cron/(.*)', 'Cron'
)
urls['default'] = base + (
'(/debug/.*)', 'Debug',
'/(.*)', 'Root'
)
urls['www.shad.cc'] = base + (
'(/themes/.*)', 'Blog_Static',
'(/plugins/.*)', 'Blog_Static',
'(/admin/.*)', 'Blog_Forward',
'(/.*)', 'Blog_Page'
)
urls['www.zaphod.eu'] = base + (
'(/pub/.*)', 'Zaphod_Redirect',
'(/.*)', 'Zaphod'
)
# still supporting the old config
urls['cdn.shad.cc'] = base + (
'/blog(/.*)', 'Blog_Static',
'/(.*)', 'Root'
)
urls['cdn.zaphod.eu'] = base + (
'(/admin/.*)', 'Zaphod',
'/(.*)', 'Root'
)
# POP definition
# You can define and configure your Point Of Presence
class Blog_Static(cache.Service):
origin = 'http://orig.shad.cc'
forceTTL = 2592000 # 1 month
ignoreQueryString = True
forwardPost = False
allowFlushFrom = ['x.x.x.x']
class Blog_Page(cache.Service):
origin = 'http://orig.shad.cc'
forceTTL = 3600 # 1 hour
ignoreQueryString = True
forwardPost = True
allowFlushFrom = ['x.x.x.x']
class Blog_Forward(forward.Service):
origin = 'http://orig.shad.cc'
class Zaphod(cache.Service):
origin = 'http://orig.zaphod.eu'
forceTTL = 2592000 # 1 month
ignoreQueryString = True
forwardPost = False
allowFlushFrom = ['x.x.x.x']
class Zaphod_Redirect(redirect.Service):
origin = 'http://zaphod.eu'
# !POP
I think this configuration is enough readable to avoid any explanation. However, do not hesitate to leave any comments.

