@@ -54,62 +54,30 @@ Then, optimize Varnish so that it only parses the Response contents when there
5454is at least one ESI tag by checking the ``Surrogate-Control `` header that
5555Symfony adds automatically:
5656
57- ..configuration -block ::
57+ ..code -block ::text
5858
59- ..code-block ::varnish4
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;
6066
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- }
67+ // For Varnish >= 3.0
68+ set beresp.do_esi = true;
69+ // For Varnish < 3.0
70+ // esi;
7771 }
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- }
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);
11279 }
80+ }
11381
11482 ..caution ::
11583