Hi, All
Can anyone help me about haproxy use_backend doesn't work if dst port is 8080,
protocol is POST when using 'if HTTP'.
The problem is that I want to balance my gateway http traffic to one program
(which can proxy traffic, listen on 127.0.0.1:4800). And I write my haproxy.cfg
as follow:
########################################
frontend f_tcp
bind :5900
mode tcp
maxconn 4096
tcp-request inspect-delay 3s
tcp-request content accept if HTTP
use_backend b_http if HTTP
default_backend b_tcp
backend b_tcp
mode tcp
fullconn 4096
option transparent
backend b_http
mode http
log global
option accept-invalid-http-response
fullconn 4096
server s1 127.0.0.1:4800
######################################
when the packet came to haproxy with dst port 80, all the packet are forward to
127.0.0.1:4800, including method POST with dst port 80. But when a packet is
method POST with dst port 8080, it does not forward to 127.0.0.1:4800, does any
one know why?
Later on, I decide to use acl for packet dst port matching, an change of
frontend is as follow, with backend not modify:
########################################
frontend f_tcp
bind :5800
mode tcp
maxconn 4096
acl is_port_80 dst_port 80
acl is_port_8080 dst_port 8080
use_backend b_http if is_port_80 is_port_8080
default_backend b_tcp
backend b_tcp
.....
########################################
But it won't work completely, even the packet with dst port 80 are not send to
127.0.0.1:4800.
Can any one help me? Thanks in advance