Multiple config files
Quick sanity check please ... There doesn't seem to be a way to include multiple config files, just one, right? Sort of like how Apache can include conf.d/*.conf etc. If possible I'd like to set up a separate config file for each site (a frontend + multiple backends) to avoid ending up with a single monolithic config file if this set of servers grows to a large number of sites, but this doesn't seem to be an option currently, just wanted to double check. I guess I could keep all the configs separate and just cat them all together again if I need to change one little thing.
'errorfile' behavior for ACL rules?
Hi, I was wondering if there was support within haproxy to return the content of a file as a result of an ACL, similar to how 'errorfile' returns the content of a file when haproxy gets that error from the underlying? For example, I want this to do what I mean: acl under_construction nbsrv(pool) lt 1 printfile ./underconstruction.html if under_construction So if less than 1 of the members of 'pool' are reported up, emit a static page without depending on it being available on a pool member or some remote host that may or may not be available. Or is it already there and I'm missing it in the docs? Thanks, = MAtt
balancing the load evenly
Hello... I am very happy with the haproxy, but the result of my loadbalancing confuses me... I believe my configuration is fine, but one of my servers are getting hit much more than the others I have tried with leastconn, roundrobin, and source. All are producing more or less the same result which is that the same one of my servers is chosen above the others... My main newbee question is of course Am i missing something? The one usually getting hit is jettysmall1 and even lowering the weight seems to help The lowest weight i have tried is half as much as the others Many thanks Magnus global log 127.0.0.1 local0 log 127.0.0.1 local1 notice #log loghostlocal0 info maxconn 600 user root group root defaults log global modehttp option httplog option dontlognull retries 5 option redispatch contimeout 15000 clitimeout 19 srvtimeout 19 option httpclose option forwardfor listen webfarm 10.244.186.18:80 modehttp acl url_jetty path_beg /info /um /ws /amf /sm /fm /product /game acl url_php path_end php acl url_unilogin path /um/login/unilogin.php stats enable stats hide-version stats uri /admin?stats stats realm Haproxy\ Statistics stats authadmin1:passwd use_backend jetty if url_jetty !url_php or url_unilogin default_backend static backend jetty balance source # or leastconn or rounrobin cookie HAP_SERVERID insert nocache indirect server jettysmall2 10.244.126.97:8080 cookie omega maxconn 150 weight 10 maxqueue 30 check fall 10 inter 4000 server jettysmall3 10.244.125.175:8080 cookie delta maxconn 150 weight 10 maxqueue 30 check fall 10 inter 4000 server jettysmall4 10.244.150.245:8080 cookie epsilon maxconn 150 weight 10 maxqueue 30 check fall 10 inter 4000 server jettysmall1 10.244.146.51:8080 cookie gamma maxconn 150 weight 7 maxqueue 30 check fall 10 inter 4000 backend static balance source # or whatever server apache1 10.244.186.18:81
Re: disable-on-404
Actually I figured it out with the help from Benoit. It looks like when just specifying the URI haproxy still uses the OPTIONS method to check? For some reason it wasn't returning a 404 error if the file wasn't there, it may be the way IIS works but I don't have anything to test this with. Anyway I added the HEAD method and all is fine and working correctly now. Thanks Kent Kent Noonan Network Engineer North Kansas City School District Desk: 816-413-5151 Cell: 816-674-9101 >>> On Wed, Aug 5, 2009 at 5:08 PM, Willy Tarreau wrote: > On Wed, Aug 05, 2009 at 02:55:54PM +0200, Benoit wrote: >> Kent Noonan a écrit : >> > Hello all... >> > >> > I am working on a new setup and am having an issue, that I will admit, is > probably me misreading the docs. We have a couple of other load balance > solutions, so I am not new to the concept, this is just our first use of > haproxy. >> > >> > I have 5 backend servers and I am trying to configure it so they can be > taken out of service by using the availability of a file. Here is the > relevant config section: >> > >> > backend application-servers >> > balance roundrobin >> > appsession session_id len 32 timeout 1h >> > mode http >> > http-check disable-on-404 >> > option httpchk /alive.htm >> > server bb-app1 10.200.35.1:80 check >> > server bb-app2 10.200.35.2:80 check >> > server bb-app3 10.200.35.3:80 check >> > server bb-app4 10.200.35.4:80 check >> > server bb-app5 10.200.35.5:80 check >> > >> > What I am trying to do is if a file exists at the uri of /alive.htm the > server is available. If that file gets deleted off of the server that server > will be taken out of service for new connections and still allow existing > connections. For some reason this isn't working, when looking at the stats > page all servers show UP even though only one of the servers has the > /alive.htm file on it. I am running 1.3.19 on a 64bit architecture. >> > >> > Can anyone see what I am missing, or have any other words of wisdom to > hopefully get this working for me? >> > >> > Thanks >> > Kent >> > >> >> I was using " option httpchk HEAD /nagios.htm HTTP/1.0\r\nHost: 127.0.0.1" >> and no special "htto-check disable-on-404" and it worked fine, in >> 1.3.15.4 at least. > > And coincidently, I've been using it today too on 1.3.19 and it worked. > > Are you sure that it's not because of your appsession cookies that you > still see traffic on your servers ? > > Willy
Re: Question about TCP balancing
On Thu, Aug 06, 2009 at 12:03:25AM +0200, Willy Tarreau wrote: > On Wed, Aug 05, 2009 at 12:01:34PM +0400, Dmitry Sivachenko wrote: > > On Wed, Aug 05, 2009 at 06:30:39AM +0200, Willy Tarreau wrote: > > > frontend my_front > > > acl near_usable nbsrv(near) ge 2 > > > acl far_usable nbsrv(far) ge 2 > > > use_backend near if near_usable > > > use_backend far if far_usable > > > # otherwise error > > > > > > backend near > > > balance roundrobin > > > server near1 1.1.1.1 check > > > server near2 1.1.1.2 check > > > server near3 1.1.1.3 check > > > > > > backend far > > > balance roundrobin > > > server far1 2.1.1.1 check > > > server far2 2.1.1.2 check > > > server far3 2.1.1.3 check > > > > > > > Aha, I already came to such a solution and noticed it works only > > in HTTP mode. > > Since I actually do not want to parse HTTP-specific information, > > I want to stay in TCP mode (but still use ACL with nbsrv). > > > > So I should stick with 1.4 for that purpose, right? > > exactly. However, keep in mind that 1.4 is development, and if > you upgrade frequently, it may break some day. So you must be > careful. > Okay, what is the estimated release date of 1.4 branch?