https://github.com/b13/proxycachemanager
TYPO3 Extension: Generic Proxy Cache Manager - Can be configured for nginx or Varnish as Reverse Proxy
https://github.com/b13/proxycachemanager
Last synced: about 1 year ago
JSON representation
TYPO3 Extension: Generic Proxy Cache Manager - Can be configured for nginx or Varnish as Reverse Proxy
- Host: GitHub
- URL: https://github.com/b13/proxycachemanager
- Owner: b13
- License: gpl-2.0
- Created: 2014-01-17T16:34:09.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2025-03-11T15:08:09.000Z (over 1 year ago)
- Last Synced: 2025-04-05T18:11:39.540Z (over 1 year ago)
- Language: PHP
- Size: 137 KB
- Stars: 10
- Watchers: 12
- Forks: 11
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Proxy Cache Manager
===================
This TYPO3 extension is a flexible and generic way to track the pages that are cached by a reverse proxy like
nginx or varnish, or any useful CDN.
Currently supported backends / providers:
* Cloudflare CDN (https://packagist.org/packages/b13/cloudflare-cdn)
* Akamai CDN (https://packagist.org/packages/b13/akamai)
* Azure CDN (https://packagist.org/packages/b13/azure-purge)
What does it do?
----------------
By embracing TYPO3's Caching Framework this extension provides a new cache to track all pages outputted that are
"cacheable". When an editor changes content on a page, the page cache needs to be cleared - and the CDN / reverse proxy
needs to be informed that the cache is invalid. This is usually done via a HTTP PURGE request to the CDN / proxy server
or a custom API.
The benefits for that are that the editor does not need to worry why out-of-date information is still visible
on his/her website.
Requirements
------------
* A TYPO3 setup (v11 LTS+) with cacheable content, see the "cacheinfo" extension for what can be tracked with HTTP caches.
* A CDN or Reverse Proxy (such as nginx or apache2)
Setup
-----
Install the extension and make sure to enter the details about your proxy servers, otherwise the default (`IENV:TYPO3_REV_PROXY`) is used.
Don't forget to set the according TYPO3 settings for using proxies, see `$GLOBALS['TYPO3_CONF_VARS']['SYS']['reverseProxyIP']` and `$GLOBALS['TYPO3_CONF_VARS']['SYS']['reverseProxyHeaderMultiValue']`.
Whenever a cacheable frontend page is now called, the full URL is stored in a cache called "tx_proxy" automatically
(a derivative of the Typo3DatabaseBackend cache), tagged with the pageID. Whenever the cache is flushed, the database
table is emptied completely, additionally, a HTTP PURGE call to the reverse proxy is made to empty all caches.
If only a certain tag is removed, the PURGE call is made only to the relevant URLs that are stored in the cache.
### Configuration
By default all administrators can flush the CDN caches via the toolbar
on the top right corner of TYPO3's Backend.
To enable the button for non-admin editors, use this UserTsConfig option:
`options.clearCache.proxy = 1`
To explicitly disable the button for specific administrators, use this
UserTsConfig option:
`options.clearCache.proxy = 0`
Credits
-------
The extension was created taken all the great from Andreas Gellhaus, Tom Rüther into account, as well
as `moc_varnish` and `cacheinfo` as great work before.
[Find more TYPO3 extensions we have developed](https://b13.com/useful-typo3-extensions-from-b13-to-you) that help us deliver value in client projects. As part of the way we work, we focus on testing and best practices to ensure long-term performance, reliability, and results in all our code.