vmod_header can be used in vcl_backend_fetch?

matrix matrix at matrix2000.name
Mon Nov 27 12:04:21 UTC 2017


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