Skip to main content

UNKNOWN

Project description

Overview

This package implements an easy way to configure a CDN to distribute skin elements of your site, thus reducing server accesses and improving response time.

sc.base.cdn as developed initially as a proof of concept and it’s shipped with three different providers:

  • Coral CDN

  • AlternateHostname

  • MultipleHostnames

Requirements

sc.base.cdn has been tested with:

Installation

To use this package, on a buildout based installation:

  1. Edit your buildout.cfg and add sc.base.cdn to the list of eggs to install

    [buildout]
    ...
    eggs =
        sc.base.cdn
  2. Tell the plone.recipe.zope2instance recipe to install a ZCML slug:

    [instance]
    ...
    zcml =
        ...
        sc.base.cdn

If another package depends on the sc.base.cdn egg or includes its zcml directly you do not need to specify anything in the buildout configuration: buildout will detect this automatically.

After updating the configuration you need to run the ‘’bin/buildout’’, which will take care of updating your system.

Go to the ‘Site Setup’ page in the Plone interface and click on the ‘Add/Remove Products’ link.

Choose the product (check its checkbox) and click the ‘Install’ button.

Uninstall – This can be done from the same management screen, but only if you installed it from the quick installer.

Post-Installation

This package installs a control panel on your Plone instance. To access it point your browser at http://<address_to_your_plone_site/@@cdn-controlpanel .

The CDN Control Panel allows you to enable/disable the CDN support and also choose which CDN provider you plan to use.

Providers

This package is bundled with three very basic CDN providers. Each one of them could be used in production but it’s possible to deploy new ones.

CoralCDN

CoralCDN is a decentralized, self-organizing, peer-to-peer web-content distribution network. CoralCDN leverages the aggregate bandwidth of volunteers running the software to absorb and dissipate most of the traffic for web sites using the system. In so doing, CoralCDN replicates content in proportion to the content’s popularity, regardless of the publisher’s resources.[#]_

Our implementation basically appends the .nyud.net sufix to urls generated by resource registries (like portal_javascripts, portal_css, portal_kss).

AlternateHostname

This provider allows you to designate an alternate hostname to serve skin resources for your portal. A very basic example would be to add 127.0.0.1 as an alternate hostname – using same port number as your zope instance – during development, thus enabling resources to be downloaded from 127.0.0.1 while content will be served from localhost.

MultipleHostnames

Acting in a similar way to AlternateHostname provider, MultipleHostnames allows you to type in multiple values for hostname.

When the absolute_url method from a resource registry is called, we use choice to pick one of the available hostnames and return it to the browser.

Using MultipleHostnames allows you to serve content from a hostname while resources will be called from up to 3 other addresses – one for each registry.

Todo/Future

  • Support other CDN providers as Amazon AWS/S3, FTP / SCP servers

  • Select which contents will be distributed by a CDN

Credits

  • Erico Andrei (erico at simplesconsultoria dot com dot br) - Coding and Packaging

Changelog

0.6 (2010-09-02)

  • Initial public release [erico_andrei]

0.5a1 (2010-09-02)

  • Support for MultipleHostnames. [erico_andrei]

  • Support for AlternateHostname. [erico_andrei]

  • Support for CoralCDN. [erico_andrei]

  • Initial release [erico_andrei]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sc.base.cdn-0.6-.zip (34.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page