Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit d79c48d

Browse filesBrowse files
committed
feature #4280 [Cookbook][Cache] Added config example for Varnish 4.0 (thierrymarianne)
This PR was merged into the 2.3 branch. Discussion ---------- [Cookbook][Cache] Added config example for Varnish 4.0 | Q | A | ------------- | --- | Doc fix? | [yes] | New docs? | [no] | Applies to | [all] | Fixed tickets | [] After upgrading to `Varnish 4.0`, I've noticed the documentation was not really up-to-date anymore: * according to https://www.varnish-cache.org/docs/4.0/whats-new/upgrading.html#req-not-available-in-vcl-backend-response, `beresp` is available in `vcl_backend_response` * according to https://www.varnish-cache.org/docs/4.0/whats-new/upgrading.html#hit-for-pass-objects-are-created-using-beresp-uncacheable, `hit_for_pass` objects are created via `beresp.uncacheable` Would this addition be enough in order to consider the documentation up-to-date in accordance with `Varnish 4.0` upgrading guidelines? Commits ------- f3b7394 Added config example for Varnish 4.0
2 parents 9a76309 + f3b7394 commit d79c48d
Copy full SHA for d79c48d

File tree

Expand file treeCollapse file tree

1 file changed

+52
-20
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+52
-20
lines changed

‎cookbook/cache/varnish.rst

Copy file name to clipboardExpand all lines: cookbook/cache/varnish.rst
+52-20Lines changed: 52 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -54,30 +54,62 @@ Then, optimize Varnish so that it only parses the Response contents when there
5454
is at least one ESI tag by checking the ``Surrogate-Control`` header that
5555
Symfony adds automatically:
5656

57-
.. code-block:: text
57+
.. configuration-block::
5858

59-
sub vcl_fetch {
60-
/*
61-
Check for ESI acknowledgement
62-
and remove Surrogate-Control header
63-
*/
64-
if (beresp.http.Surrogate-Control ~ "ESI/1.0") {
65-
unset beresp.http.Surrogate-Control;
59+
.. code-block:: varnish4
6660
67-
// For Varnish >= 3.0
68-
set beresp.do_esi = true;
69-
// For Varnish < 3.0
70-
// esi;
61+
/* (https://www.varnish-cache.org/docs/4.0/whats-new/upgrading.html#req-not-available-in-vcl-backend-response) */
62+
sub vcl_backend_response {
63+
// Check for ESI acknowledgement and remove Surrogate-Control header
64+
if (beresp.http.Surrogate-Control ~ "ESI/1.0") {
65+
unset beresp.http.Surrogate-Control;
66+
set beresp.do_esi = true;
67+
}
68+
/* By default Varnish ignores Pragma: nocache
69+
(https://www.varnish-cache.org/docs/4.0/users-guide/increasing-your-hitrate.html#cache-control)
70+
so in order avoid caching it has to be done explicitly */
71+
if (beresp.http.Pragma ~ "no-cache") {
72+
// https://www.varnish-cache.org/docs/4.0/whats-new/upgrading.html#hit-for-pass-objects-are-created-using-beresp-uncacheable
73+
set beresp.uncacheable = true;
74+
set beresp.ttl = 120s;
75+
return (deliver);
76+
}
7177
}
72-
/* By default Varnish ignores Cache-Control: nocache
73-
(https://www.varnish-cache.org/docs/3.0/tutorial/increasing_your_hitrate.html#cache-control),
74-
so in order avoid caching it has to be done explicitly */
75-
if (beresp.http.Pragma ~ "no-cache" ||
76-
beresp.http.Cache-Control ~ "no-cache" ||
77-
beresp.http.Cache-Control ~ "private") {
78-
return (hit_for_pass);
78+
79+
.. code-block:: varnish3
80+
81+
sub vcl_fetch {
82+
// Check for ESI acknowledgement and remove Surrogate-Control header
83+
if (beresp.http.Surrogate-Control ~ "ESI/1.0") {
84+
unset beresp.http.Surrogate-Control;
85+
set beresp.do_esi = true;
86+
}
87+
/* By default Varnish ignores Cache-Control: nocache
88+
(https://www.varnish-cache.org/docs/3.0/tutorial/increasing_your_hitrate.html#cache-control),
89+
so in order avoid caching it has to be done explicitly */
90+
if (beresp.http.Pragma ~ "no-cache" ||
91+
beresp.http.Cache-Control ~ "no-cache" ||
92+
beresp.http.Cache-Control ~ "private") {
93+
return (hit_for_pass);
94+
}
95+
}
96+
97+
.. code-block:: varnish2
98+
99+
sub vcl_fetch {
100+
// Check for ESI acknowledgement and remove Surrogate-Control header
101+
if (beresp.http.Surrogate-Control ~ "ESI/1.0") {
102+
unset beresp.http.Surrogate-Control;
103+
esi;
104+
}
105+
/* By default Varnish ignores Cache-Control: nocache
106+
so in order avoid caching it has to be done explicitly */
107+
if (beresp.http.Pragma ~ "no-cache" ||
108+
beresp.http.Cache-Control ~ "no-cache" ||
109+
beresp.http.Cache-Control ~ "private") {
110+
return (hit_for_pass);
111+
}
79112
}
80-
}
81113
82114
.. caution::
83115

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.