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.