Varnish and mod_deflate support

Jason Price japrice at gmail.com
Wed Dec 2 02:58:31 CET 2015


Well, you'll need to figure out why the backend served a 404 request,
despite a valid looking Accept-Encoding header.

The above gives you all the details about the request, so you can turn that
into a curl request directly to the backend in question.  That will give
you a triage tool.  When you figure out why the curl request fails, that
will give you a hint as to what you need to change in your VCL (or apache)
config.

Could it be as simple as mod_deflate not accepting gzip, but preferring the
previous compression?  (I know nothing of mod_deflate)

-Jason

On Tue, Dec 1, 2015 at 2:47 AM, georgi.int at gmail.com <georgi.int at gmail.com>
wrote:

> Thank you about your reply.
>
> 1. I understand, but the process for migrating is not so fast, because of
> compile all from source including all vmods, building new rpms and
> distributing them on many servers. Also, I am not sure that this is the
> only one solution :)
>
> 2. The pipe was only for the test to see if only on the backends will
> work. Now it's not piped, but the cache is stopped (it's all the time
> stopped, because I use it only as a firewall for apache).
>
> 3. I wouild like to ask you to see this peace of log, because I can't find
> anything anoying in it, but I am completely new to varnish so it's possible
> I miss something. I see that here it's accepting encoding gzip:
>
>   32 TxHeader     b Host: mysite.com
>    32 TxHeader     b User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686;
> rv:42.0) Gecko/20100101 Firefox/42.0
>    32 TxHeader     b Accept:
> text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
>    32 TxHeader     b Accept-Language: en-US,en;q=0.5
>    32 TxHeader     b X-Country-Code: BG
>    32 TxHeader     b X-Forwarded-For: IP, IP
>    32 TxHeader     b X-Varnish: 1218787819
>    32 TxHeader     b Accept-Encoding: gzip
>    32 RxProtocol   b HTTP/1.1
>    32 RxStatus     b 404
>    32 RxResponse   b Not Found
>    32 RxHeader     b Date: Tue, 01 Dec 2015 07:40:09 GMT
>    32 RxHeader     b Server: Apache/2.2.27 (Unix) /5.0 mod_ssl/2.2.27
> OpenSSL/1.0.1e-fips mod_bwlimited/1.4 mod_fastcgi/2.4.6
>    32 RxHeader     b Vary: Accept-Encoding
>    32 RxHeader     b Content-Encoding: gzip
>    32 RxHeader     b Content-Length: 248
>    32 RxHeader     b Connection: close
>    32 RxHeader     b Content-Type: text/html; charset=iso-8859-1
>    32 Fetch_Body   b 4(length) cls 0 mklen 1
>    32 Length       b 248
>    32 BackendClose b default
>    30 SessionOpen  c IP 59645  IP:80
>    30 ReqStart     c  IP 59645 1218787819
>    30 RxRequest    c GET
>    30 RxURL        c /favicon.ico
>    30 RxProtocol   c HTTP/1.1
>
>
> I read that it's possible to turn off completely mod_deflate from apache
> and use varnish built in compression, but at this time this is not solution
> for our company so I am trying to find another.
>
> Best regards,
> Georgi
>
>
> On 12/01/2015 02:35 AM, Jason Price wrote:
>
> First off, 3.0.7 is EOL.  Move to 4.x as soon as you can
>
> Second, I'd leave the entire stanza out of VCL.  The varnish defaults
> handle compression without issue in most cases.  If the backend serves
> compressed data, it'll be cached as compressed, and served as compressed.
>
> Third, once you 'pipe' a request, varnish does nothing other than packet
> forwarding.  It can't cache, it can't balance requests across backends,
> nothing.
>
> If the above doesn't resolve your problem, try to capture a request Client
> and Backend side transaction in varnishlog.  That will help diagnose what
> the real problem is.
>
> -Jason
>
> On Mon, Nov 30, 2015 at 11:42 AM, <georgi.int at gmail.com>
> georgi.int at gmail.com <georgi.int at gmail.com> wrote:
>
>> Hello,
>> I have been using varnish 3.7 only as a proxy server for apache and have
>> a following lines in default.vcl which should handle the encodings:
>>
>> if (req.http.Accept-Encoding) {
>>     if (req.http.Accept-Encoding ~ "gzip") {
>>       # If the browser supports it, we'll use gzip.
>>       #set req.http.Accept-Encoding = "gzip";
>>       unset req.http.Accept-Encoding;
>>     }
>>     else if (req.http.Accept-Encoding ~ "deflate") {
>>       # Next, try deflate if it is supported.
>>       set req.http.Accept-Encoding = "deflate";
>>     }
>>     else {
>>       # Unknown algorithm. Remove it and send unencoded.
>>       unset req.http.Accept-Encoding;
>>     }
>> }
>>
>> Although, customers which have mod_deflate rules in .htaccess file
>> experience the problem that their sites are not compressed. If I pipe the
>> site to apache site is compressed. SO, my question is what is the problem
>> with the deflate and my varnish configuration? Is it required to add
>> something other to varnish to work the deflate? I tried a couple of things
>> which I found in the net, but nothing worked.
>>
>> Thank you in advance for your answers!
>>
>> Best regards,
>> Georgi
>>
>> _______________________________________________
>> varnish-misc mailing list
>> varnish-misc at varnish-cache.org
>> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-misc/attachments/20151201/24e24f46/attachment.html>


More information about the varnish-misc mailing list