The http-check send meth OPTIONS directive is not working correct. I got a L7RSP with response: TCPCHK got an empty response at step 2. However, if I use GET instead OPTIONS I will get L7OK. This problem only occurs in the latest version.
Of course if I use curl I will get correct response, so it’s not backend server side issue.
My HAProxy 2.1.8 Config:
listen tcp_async_pg_cluster
bind 0.0.0.0:5432
mode tcp
default-server check check-ssl verify none port 8008 inter 3s fall 3 rise 2 on-marked-down shutdown-sessions
http-check expect status 200
maxconn 100
option httpchk OPTIONS /async
option tcplog
option dontlog-normal
retries 2
server pg1 pg1-cluster.example.com:5432
server pg2 pg2-cluster.example.com:5432
server pg3 pg3-cluster.example.com:5432
and config of HAProxy 2.2.2:
listen tcp_async_pg_cluster
bind 0.0.0.0:5432
mode tcp
default-server check check-ssl verify none port 8008 inter 3s fall 3 rise 2 on-marked-down shutdown-sessions
maxconn 100
option httpchk
option tcplog
option dontlog-normal
retries 2
http-check send meth OPTIONS uri /async
http-check expect status 200
server pg1 pg1-cluster.example.com:5432
server pg2 pg2-cluster.example.com:5432
server pg3 pg3-cluster.example.com:5432