Re: issue with small object caching
Le 04/07/2019 à 16:54, Senthil Naidu a écrit : Hi, I there any fix that can be applied for small object caching to work with Firefox and chrome too, With Internet Explorer I am able to hit the cache properly. As mentioned in my earlier , I can see that firefox is sending header Cache-Control: no-cache and Pragma: no-cache , While IE is not sending this headers Hi, So you must find a way to enable the cache on Firefox and Chrome. I don't know how to to so, but you may take a look to the developer tools of each browser. May be the cache is explicitly disabled. On HAProxy side, you can remove the header "Cache-Control" before using the cache. But, IMHO, it is a really bad idea. If the client set this header, it is on purpose (or it should be). -- Christopher Faulet
RE: issue with small object caching
Hi, I there any fix that can be applied for small object caching to work with Firefox and chrome too, With Internet Explorer I am able to hit the cache properly. As mentioned in my earlier , I can see that firefox is sending header Cache-Control: no-cache and Pragma: no-cache , While IE is not sending this headers Regards Senthil Senthil Naidu General Manager - IT Engineering IT Engineering Netmagic (An NTT Communications Company) Direct: +91 22 40090100 | Cell: 7738784713 Email: sent...@netmagicsolutions.com Linkedin | Twitter | Youtube | Blog | News | Whitepapers | Case Studies -Original Message- From: Senthil Naidu Sent: 03 July 2019 17:00 To: 'Tim Düsterhus'; Christopher Faulet; haproxy@formilux.org Subject: RE: issue with small object caching Hi Tim, Thanks , I am seeing the same headers on chrome too any idea how to disable this. Regards Senthil -Original Message- From: Tim Düsterhus [mailto:t...@bastelstu.be] Sent: 03 July 2019 16:57 To: Senthil Naidu; Christopher Faulet; haproxy@formilux.org Subject: Re: issue with small object caching Senthil, Am 03.07.19 um 13:20 schrieb Senthil Naidu: > From Firefox > *snip* > Cache-Control: no-cache This is the issue. Firefox requests that an intermediate proxy does not cache (or rather: that it re-validates its cached copy). Best regards Tim Düsterhus
RE: issue with small object caching
Hi Tim, Thanks , I am seeing the same headers on chrome too any idea how to disable this. Regards Senthil -Original Message- From: Tim Düsterhus [mailto:t...@bastelstu.be] Sent: 03 July 2019 16:57 To: Senthil Naidu; Christopher Faulet; haproxy@formilux.org Subject: Re: issue with small object caching Senthil, Am 03.07.19 um 13:20 schrieb Senthil Naidu: > From Firefox > *snip* > Cache-Control: no-cache This is the issue. Firefox requests that an intermediate proxy does not cache (or rather: that it re-validates its cached copy). Best regards Tim Düsterhus
Re: issue with small object caching
Senthil, Am 03.07.19 um 13:20 schrieb Senthil Naidu: > From Firefox > *snip* > Cache-Control: no-cache This is the issue. Firefox requests that an intermediate proxy does not cache (or rather: that it re-validates its cached copy). Best regards Tim Düsterhus
RE: issue with small object caching
Hi, Have tried setting "no option http-use-htx" but still the cache is not working from Firefox its working only from IE. Below are the request headers taken from developer options of both IE and Firefox From Firefox Host: testingsite.com User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Connection: keep-alive Upgrade-Insecure-Requests: 1 Pragma: no-cache Cache-Control: no-cache From IE Key Value Request GET / HTTP/1.1 Accept text/html, application/xhtml+xml, */* Accept-Language en-IN User-Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0) UA-CPU AMD64 Accept-Encoding gzip, deflate Hosttestingsite.com If-Modified-Since Wed, 19 Jun 2019 07:56:46 GMT If-None-Match "119-58ba89226aecd" Connection Keep-Alive Regards Senthil -Original Message- From: Christopher Faulet [mailto:cfau...@haproxy.com] Sent: 21 June 2019 23:10 To: Senthil Naidu; haproxy@formilux.org Subject: Re: issue with small object caching Le 21/06/2019 à 17:00, Senthil Naidu a écrit : > Hi, > > I am using haproxy 2.0.0 , when I am using IE I can see in the logs the first > request is reaching the real server and when I do the refresh all subsequent > request is hitting the cache of haproxy, when I use firefox/crome all the > request are served by real server only its not hitting the cache on haproxy. > > Configuration > > > global > log /dev/loglocal0 info > stats socket /var/run/haproxy.stat > > defaults > option httplog > cache test > total-max-size 100 > max-object-size 100 > max-age 240 > > #TESTGRP STARTS# frontend TESTGRP bind > 0.0.0.0:80 mode http http-request cache-use test http-response > cache-store test log global option httplog option forwardfor maxconn > 2000 timeout client 180s bind-process 1-2 default_backend TESTGRPBACK > > #TESTGRPBACK STARTS# backend TESTGRPBACK > balance roundrobin mode http log global option httpchk HEAD / fullconn > 2000 timeout server 180s default-server inter 3s rise 2 fall 3 > slowstart 0 server vm-ayw87o 172.30.1.250:80 weight 12 maxconn 2000 > #TESTGRP ENDS# > > == > > haproxy -vv > HA-Proxy version 2.0.0 2019/06/16 - https://haproxy.org/ Build options > : >TARGET = linux-glibc >CPU = x86_64 >CC = gcc >CFLAGS = -g -fno-strict-aliasing -Wdeclaration-after-statement -fwrapv > -Wno-unused-label -Wno-sign-compare -Wno-unused-parameter > -Wno-old-style-declaration -Wno-ignored-qualifiers -Wno-clobbered > -Wno-missing-field-initializers -Wtype-limits >OPTIONS = USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 > > Feature list : +EPOLL -KQUEUE -MY_EPOLL -MY_SPLICE +NETFILTER +PCRE > -PCRE_JIT -PCRE2 -PCRE2_JIT +POLL -PRIVATE_CACHE +THREAD > -PTHREAD_PSHARED -REGPARM -STATIC_PCRE -STATIC_PCRE2 +TPROXY > +LINUX_TPROXY +LINUX_SPLICE +LIBCRYPT +CRYPT_H -VSYSCALL +GETADDRINFO > +OPENSSL -LUA +FUTEX +ACCEPT4 -MY_ACCEPT4 +ZLIB -SLZ +CPU_AFFINITY > +TFO +NS +DL +RT -DEVICEATLAS -51DEGREES -WURFL +SYSTEMD > -OBSOLETE_LINKER +PRCTL +THREAD_DUMP -EVPORTS > > Default settings : >bufsize = 16384, maxrewrite = 1024, maxpollevents = 200 > > Built with multi-threading support (MAX_THREADS=64, default=2). > Built with OpenSSL version : OpenSSL 1.1.1c 28 May 2019 Running on > OpenSSL version : OpenSSL 1.1.1c 28 May 2019 OpenSSL library supports > TLS extensions : yes OpenSSL library supports SNI : yes OpenSSL > library supports : TLSv1.0 TLSv1.1 TLSv1.2 TLSv1.3 Built with network > namespace support. > Built with transparent proxy support using: IP_TRANSPARENT > IPV6_TRANSPARENT IP_FREEBIND Built with zlib version : 1.2.7 Running > on zlib version : 1.2.7 Compression algorithms supported : > identity("identity"), deflate("deflate"), raw-deflate("deflate"), > gzip("gzip") Built with PCRE version : 8.32 2012-11-30 Running on PCRE > version : 8.32 2012-11-30 PCRE library supports JIT : no (USE_PCRE_JIT > not set) Encrypted password support via crypt(3): yes > > Available polling systems : >epoll : pref=300, test result OK > poll : pref=200, test result OK > select : pref=150, test result OK > Total: 3 (3 usable), will use epoll. > > Available multiplexer protocols : > (protocols marked as cannot be specified using 'proto' keyword) >h2 : mode=HTTP side=FEmux=H2 >
Re: issue with small object caching
Le 21/06/2019 à 17:00, Senthil Naidu a écrit : Hi, I am using haproxy 2.0.0 , when I am using IE I can see in the logs the first request is reaching the real server and when I do the refresh all subsequent request is hitting the cache of haproxy, when I use firefox/crome all the request are served by real server only its not hitting the cache on haproxy. Configuration global log /dev/loglocal0 info stats socket /var/run/haproxy.stat defaults option httplog cache test total-max-size 100 max-object-size 100 max-age 240 #TESTGRP STARTS# frontend TESTGRP bind 0.0.0.0:80 mode http http-request cache-use test http-response cache-store test log global option httplog option forwardfor maxconn 2000 timeout client 180s bind-process 1-2 default_backend TESTGRPBACK #TESTGRPBACK STARTS# backend TESTGRPBACK balance roundrobin mode http log global option httpchk HEAD / fullconn 2000 timeout server 180s default-server inter 3s rise 2 fall 3 slowstart 0 server vm-ayw87o 172.30.1.250:80 weight 12 maxconn 2000 #TESTGRP ENDS# == haproxy -vv HA-Proxy version 2.0.0 2019/06/16 - https://haproxy.org/ Build options : TARGET = linux-glibc CPU = x86_64 CC = gcc CFLAGS = -g -fno-strict-aliasing -Wdeclaration-after-statement -fwrapv -Wno-unused-label -Wno-sign-compare -Wno-unused-parameter -Wno-old-style-declaration -Wno-ignored-qualifiers -Wno-clobbered -Wno-missing-field-initializers -Wtype-limits OPTIONS = USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 Feature list : +EPOLL -KQUEUE -MY_EPOLL -MY_SPLICE +NETFILTER +PCRE -PCRE_JIT -PCRE2 -PCRE2_JIT +POLL -PRIVATE_CACHE +THREAD -PTHREAD_PSHARED -REGPARM -STATIC_PCRE -STATIC_PCRE2 +TPROXY +LINUX_TPROXY +LINUX_SPLICE +LIBCRYPT +CRYPT_H -VSYSCALL +GETADDRINFO +OPENSSL -LUA +FUTEX +ACCEPT4 -MY_ACCEPT4 +ZLIB -SLZ +CPU_AFFINITY +TFO +NS +DL +RT -DEVICEATLAS -51DEGREES -WURFL +SYSTEMD -OBSOLETE_LINKER +PRCTL +THREAD_DUMP -EVPORTS Default settings : bufsize = 16384, maxrewrite = 1024, maxpollevents = 200 Built with multi-threading support (MAX_THREADS=64, default=2). Built with OpenSSL version : OpenSSL 1.1.1c 28 May 2019 Running on OpenSSL version : OpenSSL 1.1.1c 28 May 2019 OpenSSL library supports TLS extensions : yes OpenSSL library supports SNI : yes OpenSSL library supports : TLSv1.0 TLSv1.1 TLSv1.2 TLSv1.3 Built with network namespace support. Built with transparent proxy support using: IP_TRANSPARENT IPV6_TRANSPARENT IP_FREEBIND Built with zlib version : 1.2.7 Running on zlib version : 1.2.7 Compression algorithms supported : identity("identity"), deflate("deflate"), raw-deflate("deflate"), gzip("gzip") Built with PCRE version : 8.32 2012-11-30 Running on PCRE version : 8.32 2012-11-30 PCRE library supports JIT : no (USE_PCRE_JIT not set) Encrypted password support via crypt(3): yes Available polling systems : epoll : pref=300, test result OK poll : pref=200, test result OK select : pref=150, test result OK Total: 3 (3 usable), will use epoll. Available multiplexer protocols : (protocols marked as cannot be specified using 'proto' keyword) h2 : mode=HTTP side=FEmux=H2 h2 : mode=HTXside=FE|BE mux=H2 : mode=HTXside=FE|BE mux=H1 : mode=TCP|HTTP side=FE|BE mux=PASS Available services : none Available filters : [SPOE] spoe [COMP] compression [CACHE] cache [TRACE] trace Regards Thanks. Everything seems to be ok. Just to be sure, is there any chance that your server set the header "Vary" on responses to FF/Chrome but not on responses to IE ? Otherwsise, you may try to disable the HTX by setting the directive "no option http-use-htx" in your default section. It could also be helpful to have the request headers as sent from IE and from FF and the response headers as sent from your server. -- Christopher Faulet
RE: issue with small object caching
Hi, I am using haproxy 2.0.0 , when I am using IE I can see in the logs the first request is reaching the real server and when I do the refresh all subsequent request is hitting the cache of haproxy, when I use firefox/crome all the request are served by real server only its not hitting the cache on haproxy. Configuration global log /dev/loglocal0 info stats socket /var/run/haproxy.stat defaults option httplog cache test total-max-size 100 max-object-size 100 max-age 240 #TESTGRP STARTS# frontend TESTGRP bind 0.0.0.0:80 mode http http-request cache-use test http-response cache-store test log global option httplog option forwardfor maxconn 2000 timeout client 180s bind-process 1-2 default_backend TESTGRPBACK #TESTGRPBACK STARTS# backend TESTGRPBACK balance roundrobin mode http log global option httpchk HEAD / fullconn 2000 timeout server 180s default-server inter 3s rise 2 fall 3 slowstart 0 server vm-ayw87o 172.30.1.250:80 weight 12 maxconn 2000 #TESTGRP ENDS# == haproxy -vv HA-Proxy version 2.0.0 2019/06/16 - https://haproxy.org/ Build options : TARGET = linux-glibc CPU = x86_64 CC = gcc CFLAGS = -g -fno-strict-aliasing -Wdeclaration-after-statement -fwrapv -Wno-unused-label -Wno-sign-compare -Wno-unused-parameter -Wno-old-style-declaration -Wno-ignored-qualifiers -Wno-clobbered -Wno-missing-field-initializers -Wtype-limits OPTIONS = USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 Feature list : +EPOLL -KQUEUE -MY_EPOLL -MY_SPLICE +NETFILTER +PCRE -PCRE_JIT -PCRE2 -PCRE2_JIT +POLL -PRIVATE_CACHE +THREAD -PTHREAD_PSHARED -REGPARM -STATIC_PCRE -STATIC_PCRE2 +TPROXY +LINUX_TPROXY +LINUX_SPLICE +LIBCRYPT +CRYPT_H -VSYSCALL +GETADDRINFO +OPENSSL -LUA +FUTEX +ACCEPT4 -MY_ACCEPT4 +ZLIB -SLZ +CPU_AFFINITY +TFO +NS +DL +RT -DEVICEATLAS -51DEGREES -WURFL +SYSTEMD -OBSOLETE_LINKER +PRCTL +THREAD_DUMP -EVPORTS Default settings : bufsize = 16384, maxrewrite = 1024, maxpollevents = 200 Built with multi-threading support (MAX_THREADS=64, default=2). Built with OpenSSL version : OpenSSL 1.1.1c 28 May 2019 Running on OpenSSL version : OpenSSL 1.1.1c 28 May 2019 OpenSSL library supports TLS extensions : yes OpenSSL library supports SNI : yes OpenSSL library supports : TLSv1.0 TLSv1.1 TLSv1.2 TLSv1.3 Built with network namespace support. Built with transparent proxy support using: IP_TRANSPARENT IPV6_TRANSPARENT IP_FREEBIND Built with zlib version : 1.2.7 Running on zlib version : 1.2.7 Compression algorithms supported : identity("identity"), deflate("deflate"), raw-deflate("deflate"), gzip("gzip") Built with PCRE version : 8.32 2012-11-30 Running on PCRE version : 8.32 2012-11-30 PCRE library supports JIT : no (USE_PCRE_JIT not set) Encrypted password support via crypt(3): yes Available polling systems : epoll : pref=300, test result OK poll : pref=200, test result OK select : pref=150, test result OK Total: 3 (3 usable), will use epoll. Available multiplexer protocols : (protocols marked as cannot be specified using 'proto' keyword) h2 : mode=HTTP side=FEmux=H2 h2 : mode=HTXside=FE|BE mux=H2 : mode=HTXside=FE|BE mux=H1 : mode=TCP|HTTP side=FE|BE mux=PASS Available services : none Available filters : [SPOE] spoe [COMP] compression [CACHE] cache [TRACE] trace Regards Senthil -Original Message- From: Christopher Faulet [mailto:cfau...@haproxy.com] Sent: 21 June 2019 20:23 To: Senthil Naidu; haproxy@formilux.org Subject: Re: issue with small object caching Le 21/06/2019 à 16:39, Senthil Naidu a écrit : > I am testing the small object caching feature , when I am trying to > browse the site behind haproxy using IE the cache is working but when > I try the same from firefox or crome the caching functionality is not working. > > Has anybody faced this issue. > Hi, Could you provide more information please ? The HAProxy version and if possible, a "minimal" configuration to reproduce your issue. Also, share the ouput of "haproxy -vv". When you said the cache doesn't work, you mean there is no caching at all or you get an error ? Do you have any logs that could help to understand what's happening ? -- Christopher Faulet
Re: issue with small object caching
Le 21/06/2019 à 16:39, Senthil Naidu a écrit : I am testing the small object caching feature , when I am trying to browse the site behind haproxy using IE the cache is working but when I try the same from firefox or crome the caching functionality is not working. Has anybody faced this issue. Hi, Could you provide more information please ? The HAProxy version and if possible, a "minimal" configuration to reproduce your issue. Also, share the ouput of "haproxy -vv". When you said the cache doesn't work, you mean there is no caching at all or you get an error ? Do you have any logs that could help to understand what's happening ? -- Christopher Faulet