Hi.

By using the given below scheme:
=====
apache (fe) - haproxy - apache (PHP)
=====
and the rule in .htaccess

=====
RewriteEngine On
RewriteCond %{REQUEST_URI} ^(.*)/(.*)$
RewriteCond %2 !\.
RewriteRule ^(.*)$ /phpinfo.php?PATH=%1/&%2 [QSA,L]
=====
haproxy gives badrequest.

Log from apache (fe):
=====
xx.xx.248.121 - - [20/Sep/2012:16:08:51 +0400] "GET
/%D0%9A%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3/&pid=42 HTTP/1.1" 400 90 "-"
"Opera/9.80 (Windows NT 6.1; WOW64; U; ru) Presto/2.10.289
Version/12.02"
=====

haproxy:
=====
Sep 20 16:08:51 l24 haproxy_aux4_pools[18980]: xx.xx.143.35:36564
[20/Sep/2012:16:08:51.744] backend_pool610 backend_pool610/<NOSRV>
-1/-1/-1/-1/0 400 187 - - PR-- 1/0/0/0/10 0/0 {} "<BADREQ>"
=====

My haproxy.conf:
=====
global
    daemon
    user        haproxy
    group       haproxy
    chroot      /var/empty
    maxconn     4096
    ulimit-n    32000
    stats socket /var/lib/haproxy/haproxy_aux4.sock level admin mode 600

defaults
    log         127.0.0.1 local5 notice
    mode        http
    retries     10
    maxconn     2000
    timeout     client 50000
    timeout     connect 5000
    timeout     server 5m
    balance     roundrobin
    option      forwardfor except xx.xx.143.35/32
    option      http-server-close
    stats       enable
    stats       uri /aouwl3j?stats

listen  backend_pool610   xx.xx.143.35:9610
    option  httplog
    log     127.0.0.1 local6
    cookie  SERVERID
    option  httpchk
    capture request header Host len 40
    server  pool610 xx.xx.143.35:8610 weight 255 cookie pool4 check inter 800  
fall 3 rise 2 maxconn 500
    server  pool3   xx.xx.143.35:8101 weight   1 cookie pool1 check inter 2000 
fall 3 rise 2 maxconn 250
    server  pool4   xx.xx.143.35:8102 backup
=====

There's no such 400 error in version 1.4.

-- 
BRGDS. Alexey Vlasov.

Reply via email to