HAProxy вставляет заголовки в ответ с помощью директивы http-request set-header.
К сожалению, на момент написания, это доступно только тогда, когда HAProxy получает трафик от бэкэнда.
«http-request redirect ..» (или «redirect») - это окончательная директива на внешнем интерфейсе, в данном случае ответ от сервера отсутствует.
Поворот заключается в создании фиктивного бэкенда, подобного этому:
frontend http-frontend
bind *:80
mode http
use_backend be_dummy_redirect if { hdr(Host) -i foo.example.com } !{ ssl_fc }
use_backend be_dummy redirect if { hdr(Host) -i bar.example.com } !{ ssl_fc }
default_backend be_app
backend be_dummy_redirect
http-response set-header Expires "Thu, 01 Dec 2014 16:00:00"
http-response set-header Cache-Control max-age=3600
server redirect-server 127.0.0.1:9000
listen redirect
bind 127.0.0.1:9000
http-request redirect scheme https
Это обсуждалось ранее с разработчиками, и, возможно, это будет реализовано в будущем