Skip to content

Commit e71e5f2

Browse files
committed
Merge branch '2.5'
* 2.5: Revert "Revert "Added config example for Varnish 4.0"" Update custom_constraint.rst
2 parents ed0c41e + 715e00c commit e71e5f2

File tree

2 files changed

+52
-21
lines changed

2 files changed

+52
-21
lines changed

cookbook/cache/varnish.rst

Lines 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

cookbook/validation/custom_constraint.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ The validator class is also simple, and only has one required method ``validate(
6969
$this->context->buildViolation($constraint->message)
7070
->setParameter('%string%', $value)
7171
->addViolation();
72-
);
7372

7473
// If you're using the old 2.4 validation API
7574
/*

0 commit comments

Comments
 (0)