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 Host testingsite.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/log local0 info > stats socket /var/run/haproxy.stat > > defaults > option httplog > cache test > total-max-size 100 > max-object-size 1000000 > 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 <default> cannot be specified using 'proto' keyword) > h2 : mode=HTTP side=FE mux=H2 > h2 : mode=HTX side=FE|BE mux=H2 > <default> : mode=HTX side=FE|BE mux=H1 > <default> : 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