Skocz do zawartości

Afterburner - Advanced S3 Caching (Lite)

Rekomendowane odpowiedzi

Afterburner S3 Advanced Caching is a plug-in which helps improve caching performance on compressed IPS Community files stored remotely on Amazon S3. 

Why create this?

This plugin was created after a lot of research, trial and error to resolve the problem of S3 hosted IPS JS and CSS files not passing the Vary: Accept Headers tests. After finally confirming the caching headers needed to pass the Vary Pagespeed and YSlow Expires tests, it quickly became clear that due to the frequency that the resource files get unintentionally or automatically recached (either manually or automatically by system tasks or the support tool), that it is time consuming and repetitive to keep manually adding them via the Amazon Console, every time they change. Therefore a plug-in to automate the process is an ideal, easy to use alternative to say writing an Amazon Lambda script to inject the necessary headers.


How does it work?

IPS 4.4 has a lot of great performance improvements already, but if you use Amazon S3 to store your IPS Community theme files, Afterburner will automatically add the necessary caching headers to the relevant compressible JS and CSS files that IPS software creates and S3 stores, whenever IPS Community Suite needs to export them to S3.

For instance, whenever the Support Tool is used to clear outdated files in the cache or you install a new or updated theme, it causes IPS Community Suite to upload replacement S3 js.gz and css.gz files to the S3 storage bucket.

Afterburner Lite automatically adds Expires headers to each .gz file which are set to automatically expire after 8 days, sufficiently long enough to pass the GTMetrix Vary: Accept Encoding test. See the attached screenshots for more.

Afterburner automatically works via Curl or Socket file transfers by hooking into both methods, depending upon how your server is configured.

Afterburner therefore helps improve caching performance on those S3 hosted files, which in turn helps reduce page loading times throughout IPS Community Suite, whichever apps you have installed.

Thanks to BFarber for suggesting alternative hook-points.


How do I use it? Does it have any adjustable settings?

No. This is a 'Lite version' which requires no further configuration after installing and the necessary caching headers it creates are pre-set to expire after 8 days, the minimum recommended. This is my first plugin for IPS. If there is enough interest I'm hoping to create a more fully featured app with additional features, stats, admin configurable Settings etc, so you can tweak the caching performance to suit your needs.


How do I install Afterburner?

This is a plugin, so after downloading it, install the Afterburner XML file via the AdminCP > System > Plugins > Install New Plugin facility. 

IPS will install the plugin and enable it and Afterburner will inject the relevant headers as they next upload to your pre-configured S3 bucket. I recommend running the AdminCP Support Tool after installing/updating the plugin to recache ALL relevant files rather than waiting.

If you are also using Cloudfront and/or Cloudflare, I also found it useful in testing to clear/invalidate Cloudfront/Cloudflare afterwards, instead of waiting for them to next update themselves.


How to update to a newer version?

To upload a newer version, use the usual Upload New Version button next to Afterburner in your list of plugins.


Does it work on Cloudhosted IPS Communities?

I don't see why not, as long as you have S3 hosted files. I only have self hosted IPS sites.


How do I know it's working?

You can test your site at GTMetrix before and afterwards. Look for the Vary: Accept Encoding Pagespeed test score. You should see a A(100%) score for the test after installing Afterburner (unless your site also uses external cachable compressed files via plugins, widgets etc which you don't have control over such as at Google etc). Once enabled, Afterburner helps increase your overall GTMetrix score and reduce future page loading times on repeat tests and end user experience.

Alternatively, you can use the Amazon S3 Management console to view the Meta headers on the actual stored gz files.

1C6BA497-C428-40B3-98C9-F91E04C6C599.thumb.jpeg.016d2c63575c2e0a6464d247fe2d7502.jpeg 450F795A-55DD-41C5-AA0B-599328A9A8D0.thumb.jpeg.75d42582c90e116de89401bf7dba9526.jpeg




Przeczytaj cały wpis

Udostępnij tę odpowiedź

Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się

  • Ostatnio przeglądający   (0 użytkowników)

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

  • Dodaj nową pozycję...