Hi,
I'm using Haproxy1.4.24 on CentOS5.9.

My Haproxy.cfg frontend is working with 'mode tcp' like this..
----------------------------
defaults
  mode tcp
#  mode http
  option tcplog
  retries 3
  option redispatch
  timeout connect 5000
  timeout client 50000
  timeout server 50000

frontend all 0.0.0.0:80
  maxconn 2000
  timeout client 50000
  default_backend backserver
----------------------------

And backend is working with 'mode http' like this
----------------------------
backend backserver
  mode http
  balance roundrobin
  option http-server-close
  option forwardfor
  server serv1 192.168.x.x maxconn 1024
  server serv2 192.168.x.x maxconn 1024
----------------------------

Then I input the command
 echo 'show errors' | socat unix-connect:/tmp/haproxyxxx/stats.socket stdio
and got message like this..
----------------------------
[04/Jul/2013:11:39:40.523] frontend all (#2): invalid request
  src (Client IP), session #9620, backend <NONE> (#-1), server <NONE> (#-1)
  HTTP internal state 26, buffer flags 0x00909002, event #393
  request length 1400 bytes, error at position 77:
 
  00000  GET /xxxxxxxxyyyyyyyy/fooooo.cgi?aaaa=xxxxx&bbb=xxxxxxxxxxxxxxxxxxxxxxx
  00070+ xxxxxxx\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
----------------------------

I can understand that Haproxy has accepted invalid http request from client.
But I have 2 questions.

1) Does my Haproxy check requests about Http-Level(L7) headers content in
spite of running with 'mode tcp'?
  According to the logs from unix-socket, Haproxy seems to check requests
about L7 headers...
  I cant understand it why.

2) Can I simply pass through requests to backend server?
  I want to pass through the lots requests without checking to haproxy.


I want any ideas.
thanks.


Reply via email to