Я пытаюсь вращаться между прокси, используя haproxy. Ниже приведена часть моей конфигурации:
frontend rotatingproxies
bind *:3128
default_backend pool
option http_proxy
option http-use-proxy-header
option accept-invalid-http-request
backend pool
mode http
server proxy1 ip1:port1;
server proxy2 ip2:port2;
balance roundrobin
Я могу выполнить запрос через haproxy, например: curl -x http://localhost:3128 "https://httpstat.us/429"
У меня проблема в том, что haproxy, кажется, не регистрирует реальный HTTP-ответ код из конечной точки. Как и в примере выше, «https://httpstat.us/429» вернет код состояния 429. Но в журнале haproxy указывается, что http-код равен 200:
пул вращающихся прокси / proxy1 0/0/216/355/1609 200 3670 - - ---- 1 / 1/0/0/0 0/0 {} "CONNECT httpstat.us:443 HTTP / 1.1
По сути, я хочу написать пользовательское ограничение скорости на основе кода ответа или тела ответа, но Как я знаю, haproxy не может проверять тело ответа без написания пользовательского сценария Lua.
Итак, как я могу заставить haproxy получить правильный код состояния http или проверять код ответа без написания пользовательского сценария Lua?