It appears that HAproxy is not honoring q-values in the Accept-Encoding
header, when requesting compression.
When I run a curl command with Accept-Encoding:gzip (no q-value), I get
back an expected response:
#curl -svo /dev/null
http://something/js/global-main-7b2ca6b.jshttp://origin.cdn.creativelive.com/js/global-main-7b2ca6b.js
-HAccept-Encoding: gzip
*Date: Fri, 14 Mar 2014 19:20:28 GMT*
*Content-Type: application/x-javascript*
*Last-Modified: Fri, 14 Mar 2014 05:35:33 GMT*
*ETag: 53229525-56f6d*
*Access-Control-Allow-Origin: **
*Access-Control-Allow-Credentials: true*
*Access-Control-Allow-Methods: GET, POST, OPTIONS*
*Access-Control-Allow-Headers:
DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type*
*Accept-Ranges: bytes*
*Transfer-Encoding: chunked*
*Content-Encoding: gzip*
However, if I run a 'curl' command with a q-value on the Accept-Encoding
parameter, I get:
# curl -svo /dev/null
http://something/js/global-main-7b2ca6b.jshttp://origin.cdn.creativelive.com/js/global-main-7b2ca6b.js
-HAccept-Encoding: gzip;q=1.000
*Date: Fri, 14 Mar 2014 19:47:10 GMT*
*Content-Type: application/x-javascript*
*Content-Length: 356205*
*Last-Modified: Fri, 14 Mar 2014 05:35:30 GMT*
*ETag: 53229525-56f6d*
*Access-Control-Allow-Origin: **
*Access-Control-Allow-Credentials: true*
*Access-Control-Allow-Methods: GET, POST, OPTIONS*
*Access-Control-Allow-Headers:
DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type*
*Accept-Ranges: bytes*
On HAproxy, I have this setup on my frontend:
frontend web
mode http
bind *:80
bind *:443 ssl crt /etc/haproxy/certs/web.pem crt
/etc/haproxy/certs/
log-format %ST|%fp|%CC|%Ts|%ci|%r|%hr
capture cookie cc= len 63
option http-server-close
option forwardfor
capture request header User-Agent len 128
capture request header Host len 64
errorloc303 504 /live.html
errorloc303 503 /live.html
errorloc303 502 /live.html
maxconn 5000
*compression algo gzip*
*compression type text/html text/plain text/css text/javascript
application/javascript application/x-javascript*
Am I missing something or does HAproxy not support q-values?
Thanks!
Jay