HTTP 304 на самом деле не перенаправление, это пустой ответ, указывающий Not Modified
, который сообщает клиенту, что сервер ответил бы 200
и обработал бы контент, но запрошенный ресурсне изменился, поэтому клиент может просто использовать то, что он кэшировал.
Так что я не совсем уверен, что вы видите неправильное поведение.То есть ваши запросы могут проходить просто нормально, а внутренний сервер может правильно отвечать 304
.
Сервер принимает решение ответить этим кодом на основе информации, предоставленной в запросе.заголовки If-Modified-Since
и / или If-None-Match
.Поэтому, если вы действительно хотите отключить этот механизм кэширования и каждый раз получать полный ответ 200
, вы можете указать HAProxy удалить эти заголовки из входящего запроса:
listen http
bind 127.0.0.1:8080
acl set_cookie path_beg /set-cookie
# Delete headers related to caching
http-request del-header If-Modified-Since
http-request del-header If-None-Match
use_backend b-backend if { req.cook(SITEID) -m beg b-backend }
use_backend b-backend if set_cookie
default_backend ab-split-backend