Configuring WordPress for Amazon CloudFront Caching?

Amazon CloudFront is a content distribution network (CDN) that can help you survive a huge amount of load in a short amount of time. What’s the easiest way to configure WordPress to host its files (media library, CSS, plugin files, theme) on S3/CloudFront?

(I’m currently using W3 Total Cache to do this.)

Related posts

Leave a Reply

2 comments

  1. The plugin works fine; alternative you can use a own function to replace the bloginf() to your CDN-Url; Example:

    replace the url in content:

    // replace content for CDN
    if ( !function_exists('fb_add_static_content_url') ) {
        function fb_add_static_content_url($content) {
                if ( is_admin() ) // eigentlich überflüssig
                    return $content;
    
                $wpurl = get_bloginfo('wpurl');
    
                $search = array(
                    $wpurl . '/wp-content/images/',
                    $wpurl . '/wp-content/download/',
                );
    
                $replace = array(
                    'http://cdn1.bueltge.de/',
                    'http://cdn2.bueltge.de/',
                );
    
                return str_replace( $search, $replace, $content );
        }
        add_filter( 'the_content', 'fb_add_static_content_url' );
    }
    

    replace stylesheet_directoy and others:

    // replace for CDN
    if ( !function_exists('fb_add_static_wpurl') ) {
        function fb_add_static_wpurl($info, $show) {
    
            if ( is_admin() )
                return $info;
    
            $keys = array(
                'url',
                'wpurl',
                'stylesheet_url',
                'stylesheet_directory',
                'template_url',
                'template_directory',
                );
    
            if ( in_array( $show, $keys ) ) {
    
                $wpurl = get_bloginfo('wpurl');
    
                $search = array(
                    $wpurl . '/wp-content/images/',
                    $wpurl . '/wp-content/download/',
                    $wpurl . '/wp-content/themes/',
                    $wpurl . '/wp-content/plugins/',
                );
    
                $replace = array(
                    'http://cdn1.bueltge.de/',
                    'http://cdn2.bueltge.de/',
                    'http://cdn3.bueltge.de/',
                    'http://cdn3.bueltge.de/',
                );
    
                return str_replace( $search, $replace, $info );
    
            } else {
                return $info;
            }
        }
        add_filter( 'bloginfo_url', 'fb_add_static_wpurl', 9999, 2 );
    }
    

    replace the template_directory and other:

    function fb_add_static_stylesheet_uri($uri) {
    
                if ( is_admin() )
                    return $uri;
    
                $wpurl = get_bloginfo('wpurl');
    
                $search = array(
                    $wpurl . '/wp-content/images/',
                    $wpurl . '/wp-content/download/',
                    $wpurl . '/wp-content/themes/',
                    $wpurl . '/wp-content/plugins/',
                );
    
                $replace = array(
                    'http://cdn1.bueltge.de/',
                    'http://cdn2.bueltge.de/',
                    'http://cdn3.bueltge.de/',
                    'http://cdn3.bueltge.de/',
                );
                return str_replace( $search, $replace, $uri );
    
    }
    add_filter ( 'template_directory_uri', 'fb_add_static_stylesheet_uri' );
    add_filter ( 'stylesheet_uri', 'fb_add_static_stylesheet_uri' );
    add_filter ( 'stylesheet_directory_uri', 'fb_add_static_stylesheet_uri' );