This repository has been archived by the owner on May 22, 2023. It is now read-only.
forked from CondeNast/purgely
-
Notifications
You must be signed in to change notification settings - Fork 1
/
readme.txt
123 lines (79 loc) · 4.68 KB
/
readme.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
=== Purgely ===
Contributors: tollmanz
Tags: caching, fastly, page cache, cache invalidation
Requires at least: 4.2.0
Tested up to: trunk
Stable tag: 1.0.1
License: MIT
License URI: https://opensource.org/licenses/MIT
A plugin to manage Fastly caching behavior and purging.
== Description ==
Purgely manages caching behavior for WordPress sites using Fastly as an edge caching solution. The plugin exposes useful
APIs to help control how pages on your site are cached, as well as provides sane defaults to make this a plug and play
solution for Fastly cache management.
The plugin handles the following:
* Sets the `Surrogate-Control` header to control the expiration time for pages
* Sets the `stale-while-revalidate` and `stale-if-error` `Cache-Control` directives for managing these special Fastly
behaviors
* Set groups of `Surrogate-Keys` for all pages to provide purging across multiple pages with one command
* Provides invalidation of posts and related posts on save
Each of these items have sane defaults with ways to override them and configure them to your liking.
Additionally, the plugin exposes a WP CLI command to provide more flexible purging options.
== Installation ==
### Manual installation
1. Upload the plugin directory to `/wp-content/plugins/`
1. Activate the plugin through the 'Plugins' menu in WordPress
### WP CLI installation
1. Run `wp plugin install --activate purgely`
### Configuration
Purgely provides a number of constants that can be used to control the behavior of the plugin and Fastly's cache. Users
who wish to change these values should define the constants in `wp-config.php`.
After installing, you should define `PURGELY_FASTLY_KEY` and `PURGELY_FASTLY_SERVICE_ID` in `wp-config.php`. The plugin will work without them; however, you will not be able to purge by surrogate key or purge all without configuring these options. To define them copy the following code to your `wp-config.php` file, update the key to use your key, and the service ID to match the fastly service you're using:
```
define( 'PURGELY_FASTLY_KEY', '39c4820390d8f050giweda50268c7583' );
define( 'PURGELY_FASTLY_SERVICE_ID', 'abcdefghijklmn1234567890' );
```
Configuring other constants is similarly done by defining the constant in `wp-config.php`. All constants are explained
below.
**PURGELY_API_ENDPOINT**
Defines the API endpoint for Fastly. This should not usually need to be changed, but is added in the event that Fastly
decides to use a different API endpoint, or if there is a need for a user to have a special endpoint.
*default: (string) ''*
**PURGELY_ALLOW_PURGE_ALL**
Determines whether or not the plugin can issue a purge all request. Purge all can have dire consequences for a website.
As such, this behavior is disabled by default. If can be turned on by setting this value to `true`.
*default: (bool) false*
**PURGELY_ENABLE_STALE_WHILE_REVALIDATE**
Determines whether or not the plugin sets the `stale-while-revalidate` directive for the `Cache-Control` header. Setting
this value to `false` will turn off the `stale-while-revalidate` behavior. Note that you can manually control this
behavior via the functions exposed in the plugin regardless of this configuration option. This option only controls the
default plugin behavior.
*default: (bool) true*
**PURGELY_STALE_WHILE_REVALIDATE_TTL**
Sets the TTL for the `stale-while-revalidate` directive in seconds. The value instructs Fastly to continue serving stale
content while new content is generated for the duration of the value that is set.
*default: (int) 86400*
**PURGELY_ENABLE_STALE_IF_ERROR**
Determines whether or not the plugin sets the `stale-if-error` directive for the `Cache-Control` header. Setting
this value to `false` will turn off the `stale-if-error` behavior. Note that you can manually control this
behavior via the functions exposed in the plugin regardless of this configuration option. This option only controls the
default plugin behavior.
*default: (bool) true*
**PURGELY_STALE_IF_ERROR_TTL**
Sets the TTL for the `stale-if-error` directive in seconds. The value instructs Fastly to continue serving stale
content while the origin site is serving an error for the duration of the value that is set.
*default: (int) 86400*
**PURGELY_SURROGATE_CONTROL_TTL**
Sets the TTL for the `Surrogate-Control` header in seconds. This value is the default TTL for all pages on your site,
unless it is cached within the app. Changing this value changes the value for the whole site.
*default: (int) 300*
== Changelog ==
= 1.0.1 =
* Update key saniziation to allow all capital letters, not just A-B.
= 1.0.0 =
* Initial release.
== Upgrade Notice ==
= 1.0.1 =
Update key saniziation to allow all capital letters, not just A-B.
= 1.0.0 =
Initial release.