vmod_header can be used in vcl_backend_fetch?
matrix
matrix at matrix2000.name
Tue Nov 28 07:03:15 UTC 2017
thank you for checking.
I would like to make it clear about vmod header action.
Does ‘header append’ mean to append value of each header? or to append
the entire header ?
I complete thought that handled value of existing header below.
header.append(bereq.http.Accept-Encoding, "aaaa");
Vary:http.Accept-Encoding"aaaa"
header.append(bereq.http.Accept-Encoding, "bbbb");
Vary:http.Accept-Encoding"aaaa,bbbb"
*thank you for information about br. I already check!
2017-11-27 21:23 GMT+09:00 Guillaume Quintard <guillaume at varnish-software.com>:
> So the varnishlog confirms the vmods works as expected:
>
> - BereqUnset Accept-Encoding: gzip
> - BereqHeader Accept-Encoding: aaaa
> - BereqHeader Accept-Encoding: bbbb
>
> bereq is "BackEnd REQuest", if you want to change the "BackEnd RESPonse",
> use beresp.http.*.
>
> And you can simply to:
>
> set bereq.http.accept-encoding = "br, gzip";
>
> Just know that while varnish natively support gzip, it's not the case for
> brotli. You can have a look at this blog post:
> https://info.varnish-software.com/blog/varnish-cache-brotli-compression
>
> --
> Guillaume Quintard
>
> On Mon, Nov 27, 2017 at 1:04 PM, matrix <matrix at matrix2000.name> wrote:
>>
>> hi thank you for your reply
>>
>> According to varnishlog Bereq header are displayed but origin server
>> log, only Accept-Encoding: aaaa .
>>
>> - BereqHeader Accept-Encoding: aaaa
>> - BereqHeader Accept-Encoding: bbbb
>>
>> I would like to change Accept-Encoding Header to br,gzip, because the
>> varnish is force replaced Accept-Encoding gzip when backend request.
>>
>> VCL
>> unset bereq.http.Accept-Encoding;
>> header.append(bereq.http.Accept-Encoding, "aaaa");
>> header.append(bereq.http.Accept-Encoding, "bbbb");
>>
>>
>> Full varnishlog below
>>
>> * << BeReq >> 3
>> - Begin bereq 2 fetch
>> - Timestamp Start: 1511783436.988432 0.000000 0.000000
>> - BereqMethod GET
>> - BereqURL /cache/200.php
>> - BereqProtocol HTTP/1.1
>> - BereqHeader User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu)
>> libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
>> - BereqHeader Accept: */*
>> - BereqHeader host: test.com
>> - BereqHeader Accept-Encoding: gzip
>> - BereqHeader Surrogate-Capability: key=ESI/1.0
>> - BereqHeader X-Cache-Key: /cache/200.php
>> - BereqHeader X-Varnish: 3
>> - VCL_call BACKEND_FETCH
>> - BereqUnset Accept-Encoding: gzip
>> - BereqHeader Accept-Encoding: aaaa
>> - BereqHeader Accept-Encoding: bbbb
>> - VCL_return fetch
>> - BackendOpen 21 boot.backend1 127.0.0.1 81 127.0.0.1 51782
>> - BackendStart 127.0.0.1 81
>> - Timestamp Bereq: 1511783436.988549 0.000118 0.000118
>> - Timestamp Beresp: 1511783437.198227 0.209795 0.209677
>> - BerespProtocol HTTP/1.1
>> - BerespStatus 404
>> - BerespReason Not Found
>> - BerespHeader Date: Mon, 27 Nov 2017 11:50:37 GMT
>> - BerespHeader Content-Type: text/html; charset=UTF-8
>> - BerespHeader Transfer-Encoding: chunked
>> - BerespHeader Connection: keep-alive
>> - BerespHeader Vary: Accept-Encoding
>> - TTL RFC 86400 10 -1 1511783437 1511783437 1511783437 0 0
>> - VCL_call BACKEND_RESPONSE
>> - TTL VCL 300 10 0 1511783437
>> - VCL_return deliver
>> - Storage file disk
>> - ObjProtocol HTTP/1.1
>> - ObjStatus 404
>> - ObjReason Not Found
>> - ObjHeader Date: Mon, 27 Nov 2017 11:50:37 GMT
>> - ObjHeader Content-Type: text/html; charset=UTF-8
>> - ObjHeader Vary: Accept-Encoding
>> - Fetch_Body 2 chunked stream
>> - BackendReuse 21 boot.backend1
>> - Timestamp BerespBody: 1511783437.198340 0.209908 0.000113
>> - Length 16
>> - BereqAcct 569 0 569 178 16 194
>> - End
>>
>> * << Request >> 2
>> - Begin req 1 rxreq
>> - Timestamp Start: 1511783436.988227 0.000000 0.000000
>> - Timestamp Req: 1511783436.988227 0.000000 0.000000
>> - ReqStart x.x.x.x 62656
>> - ReqMethod GET
>> - ReqURL /cache/200.php?1234
>> - ReqProtocol HTTP/1.1
>> - ReqHeader User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu)
>> libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
>> - ReqHeader Accept: */*
>> - ReqHeader Host:test.com
>> - ReqHeader Accept-Encoding: gzip,deflate
>> - VCL_call RECV
>> - ReqUnset Host:test.com
>> - ReqHeader host: test.com
>> - ReqUnset Accept-Encoding: gzip,deflate
>> - ReqHeader Accept-Encoding: gzip
>> - ReqHeader Surrogate-Capability: key=ESI/1.0
>> - ReqURL /cache/200.php
>> - VCL_return hash
>> - VCL_call HASH
>> - ReqHeader X-Cache-Key: /cache/200.php
>> - VCL_Log redhash
>> - ReqUnset X-Cache-Key: /cache/200.php
>> - ReqHeader X-Cache-Key: /cache/200.php
>> - VCL_return lookup
>> - VCL_call MISS
>> - VCL_Log redmiss
>> - VCL_return fetch
>> - Link bereq 3 fetch
>> - Timestamp Fetch: 1511783437.198397 0.210170 0.210170
>> - RespProtocol HTTP/1.1
>> - RespStatus 404
>> - RespReason Not Found
>> - RespHeader Date: Mon, 27 Nov 2017 11:50:37 GMT
>> - RespHeader Content-Type: text/html; charset=UTF-8
>> - RespHeader Vary: Accept-Encoding
>> - RespHeader X-Varnish: 2
>> - RespHeader Age: 0
>> - RespHeader Via: 1.1 varnish-v4
>> - VCL_call DELIVER
>> - VCL_Log reddeliver
>> - RespUnset X-Varnish: 2
>> - RespUnset Via: 1.1 varnish-v4
>> - VCL_return deliver
>> - Timestamp Process: 1511783437.198471 0.210244 0.000074
>> - RespHeader Content-Length: 16
>> - Debug "RES_MODE 2"
>> - RespHeader Connection: keep-alive
>> - Timestamp Resp: 1511783437.198515 0.210288 0.000044
>> - ReqAcct 219 0 219 282 16 298
>> - End
>>
>> * << Session >> 1
>> - Begin sess 0 HTTP/1
>> - SessOpen x.x.x.x 62656 0.0.0.0:80 172.26.12.250 80
>> 1511783436.987762 20
>> - Link req 2 rxreq
>> - SessClose REM_CLOSE 0.217
>> - End
>>
>>
>> 2017-11-27 20:21 GMT+09:00 Guillaume Quintard
>> <guillaume at varnish-software.com>:
>> > Hi,
>> >
>> > I would expect to have two AE headers, one with aaa and one with bbb,
>> > would
>> > you have the varnishlog of that particular bereq?
>> >
>> > Also, it's probably out of scope, but are you actually changing the
>> > Accept-Encoding header, or is that just for the example?
>> >
>> > --
>> > Guillaume Quintard
>> >
>> > On Mon, Nov 27, 2017 at 12:15 PM, matrix <matrix at matrix2000.name> wrote:
>> >>
>> >> I would like to control bereq header below.(varnish4.1.8)
>> >>
>> >> header.append(bereq.http.Accept-Encoding, "aaa");
>> >> header.append(bereq.http.Accept-Encoding, "bbb");
>> >>
>> >> But bereq.http.Accept-Encoding header is "aaa". (not "aaa,bbb")
>> >> is it possible to handle the bereq using vmod_header ?
>> >>
>> >> or is it varnish-modules bug?
>> >>
>> >> Best regards.
>> >> _______________________________________________
>> >> varnish-misc mailing list
>> >> varnish-misc at varnish-cache.org
>> >> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
>> >
>> >
>
>
More information about the varnish-misc
mailing list