Is ICY really listening on localhost:3128 ?
If you telnet directly to that, does it work?

On 3/9/11 6:36 PM, David Young wrote:
Hi folks,

First-time poster here - we've been working on implementing haproxy to
perform load balancing between our backend squid proxies.

I stumbled across an issue today when I realized that I can't listen to
streaming radio via my haproxy instance, but that it works fine if I
direct my request to one of by backend proxies directly.

A bit of searching lead me to the issue of HTTP/1.1 vs ICY as the
probable cause
(http://www.squid-cache.org/Versions/v3/3.1/RELEASENOTES.html#ss2.10).

I thought that if I configured haproxy in "mode tcp" instead of "mode
http", that it'd behave more like a simple loadbalancer, and just pass
the request onto my squid backend verbatim, but that doesn't seem to
have worked either.

An example URL I'm having trouble with is http://66.225.205.47/;stream.mp3

Even in "mode tcp", if I request that URL through by browser from
haproxy, I get a 502 error, whereas if I requested it directly from the
backend squid instance which services my request anyway, I get the
expected headers and stream.

I thought I'd try telnetting to the haproxy / squid ports respectively,
to test, and I received differing output (below).

Can anybody enlighten me?

Many thanks,
David

-- Relevant haproxy.cfg --

#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
     log         127.0.0.1 local2
     log         /dev/log local2
     chroot      /var/lib/haproxy
     pidfile     /var/run/haproxy.pid
     maxconn     4000
     user        haproxy
     group       haproxy
     daemon

#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
     mode        http
     log         global
     option      dontlognull
     option      http-server-close
     option      httplog

     # Log on start of connection, not completion
     option      logasap

     # log errors separately
     option      log-separate-errors

     option      forwardfor
     option      redispatch
     timeout connect 10000 # default 10 second time out if a backend is
not found
     timeout client 300000
     timeout server 300000
     maxconn     60000
     retries     3


#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend  test_frontend *:5001
     mode tcp
option tcpka
default_backend test_backend


backend test_backend
         balance roundrobin
         server localhost localhost:3128



-- Telnet to haproxy infront of single squid tcp backend --

DavidBook:~ davidy$ telnet webscan-dev.blahblah.net 5001
Trying x.x.x.x...
Connected to webscan-dev.blahblah.net.
Escape character is '^]'.
GET http://66.225.205.47/;stream.mp3
HTTP/1.0 502 Bad Gateway
Cache-Control: no-cache
Connection: close
Content-Type: text/html

<html><body><h1>502 Bad Gateway</h1>
The server returned an invalid or incomplete response.
</body></html>
Connection closed by foreign host.
DavidBook:~ davidy$


-- Telnet to squid directly --

DavidBook:~ davidy$ telnet webscan-dev.blahblah.net 3128
Trying x.x.x.x...
Connected to webscan-dev.blahblah.net.
Escape character is '^]'.
GET http://66.225.205.47/;stream.mp3
ICY 200 OK
Date: Thu, 10 Mar 2011 02:25:55 GMT
icy-notice1:<BR>This stream requires<a
href="http://www.winamp.com/";>Winamp</a><BR>
icy-notice2: SHOUTcast Distributed Network Audio Server/Linux v1.9.8<BR>
icy-name: Family Friendly WBGL
icy-genre: Contemporary Christian
icy-url: http://www.wbgl.org
Content-Type: audio/mpeg
icy-pub: 1
icy-br: 96
X-Cache: MISS from webscan-dev.blahblah.net
X-Cache-Lookup: MISS from webscan-dev.blahblah.net:3128
Via: 0.0 webscan-dev.blahblah.net (squid/3.1.11)
Connection: close

00/Ȯt?????sƸD?,?4A?Q`F??BA????B??@(???u??kTC???????<binary stream
continues...>


Reply via email to