Ruslan Isay, a project manager from i20.biz company, gave a presentation about their experience with Drupal, Nginx, and Varnish. Their website has over 500,000 pages and 800,000 registered users. They use Varnish for caching and Nginx for file storage and load balancing. They implemented edge side includes (ESI) to cache dynamic content and purge caches when content changes. Custom modules integrate ESI and handle cache expiration.
11. Cache refresh
• frequently page content updates
• fast appearance of new content on many pages
• quick response for user interaction
• regular changes
12. Hot news
• Panels
• Panels Everywhere
• edge side includes (ESI) integration
• panes
• one pane style plugin to rule all ESI
14. Hot news
• module d.o/project/esi not used
• custom integration module
• hook for url arguments by pane type
• expiration by TTL
• pane type as ESI url part - custom TTL
• programmatic ESI control
15. User events
• comments
• votes
• counters
• user profile info
• user favorites
• node ratings
• content management
16. User events
Solution - trigger PURGE/BAN of ESI, static file
cache by URL
Modules - Purge + Cache expiration + Rules
17. Support & deploy
• ESI urls and callbacks back support
• stubs for future features
• AJAX/AHAH urls and callbacks back support
• scripts for "smooth" static cache regeneration
• mistake cost multiplied - always think twice...
18. Bonuspack. Usercache
• all cache (user/anonym) - the same
• user-specific blocks by ESI
• pass Drupal UID with COOKIES to JS for
manage "cosmetic" render
• manage cache exceptions
19. Bonuspack. Security - CSRF
• tokens - not available
• no proven solution
• may be tokens by ESI and custom script?