Thanks Baptiste, I will try the latest snapshot.

Mir


On Nov 7, 2011, at 10:27 PM, Baptiste wrote:

> Hi,
> 
> The configuration is for HAProxy 1.5-something :)
> 
> cheers
> 
> On Tue, Nov 8, 2011 at 3:00 AM, Mir Islam <[email protected]> wrote:
>> Thanks Vincent for the link. That is exactly what I was looking for. However 
>> the configuration they provided does not work out of the box. My knowledge 
>> in HAProxy is less than two days old. So if  you or anyone else can tell me 
>> what the following errors mean, I will appreciate it a lot.
>> 
>> First one is simple, for some reason binary type is not valid for 
>> stick-table? All I could see in web site in reference to "ip" but not binary 
>> or other types. I have compiled haproxy 1.4.18 from source on linux.
>> 
>> ./haproxy -f ./haproxy-zdm-ssl2.cfg
>> [ALERT] 311/015412 (23710) : parsing [./haproxy-zdm-ssl2.cfg:8] : 
>> stick-table: unknown type 'binary'.
>> [ALERT] 311/015412 (23710) : parsing [./haproxy-zdm-ssl2.cfg:10] : error 
>> detected while parsing ACL 'clienthello'.
>> [ALERT] 311/015412 (23710) : parsing [./haproxy-zdm-ssl2.cfg:11] : error 
>> detected while parsing ACL 'serverhello'.
>> [WARNING] 311/015412 (23710) : parsing [./haproxy-zdm-ssl2.cfg:14] : 
>> tcp-request inspect-delay will be ignored because backend 'https' has no 
>> frontend capability
>> [ALERT] 311/015412 (23710) : parsing [./haproxy-zdm-ssl2.cfg:15] : error 
>> detected in backend 'https' while parsing 'if' condition
>> [ALERT] 311/015412 (23710) : parsing [./haproxy-zdm-ssl2.cfg:18] : unknown 
>> keyword 'tcp-response' in 'backend' section
>> [ALERT] 311/015412 (23710) : parsing [./haproxy-zdm-ssl2.cfg:24] : 'stick': 
>> unknown fetch method 'payload_lv(43,1)'.
>> [ALERT] 311/015412 (23710) : parsing [./haproxy-zdm-ssl2.cfg:27] : 'stick': 
>> unknown fetch method 'payload_lv(43,1)'.
>> [ALERT] 311/015412 (23710) : Error(s) found in configuration file : 
>> ./haproxy-zdm-ssl2.cfg
>> [WARNING] 311/015412 (23710) : config : missing timeouts for backend 'https'.
>>   | While not properly invalid, you will certainly encounter various problems
>>   | with such a configuration. To fix this, please ensure that all following
>>   | timeouts are set to a non-zero value: 'client', 'connect', 'server'.
>> [ALERT] 311/015412 (23710) : Fatal errors found in configuration.
>> 
>> 
>> My configuration
>> 
>> backend https
>>        mode tcp
>>        balance roundrobin
>>        srvtimeout      50000
>> 
>>        # maximum SSL session ID length is 32 bytes.
>>        stick-table type binary len 32 size 30k expire 30m
>> 
>>        acl clienthello req_ssl_hello_type 1
>>        acl serverhello rep_ssl_hello_type 2
>> 
>>        # use tcp content accepts to detects ssl client and server hello.
>>        tcp-request inspect-delay 5s
>>        tcp-request content accept if clienthello
>> 
>>        # no timeout on response inspect delay by default.
>>        tcp-response content accept if serverhello
>> 
>>        # SSL session ID (SSLID) may be present on a client or server hello.
>>        # Its length is coded on 1 byte at offset 43 and its value starts
>>        # at offset 44.
>>        # Match and learn on request if client hello.
>>        stick on payload_lv(43,1) if clienthello
>> 
>>        # Learn on response if server hello.
>>        stick store-response payload_lv(43,1) if serverhello
>> 
>>        server s1 192.168.1.1:443
>>        server s2 192.168.1.2:443
>> 
>> 
>> 
>> 
>> On Nov 7, 2011, at 12:00 PM, Vincent Bernat wrote:
>> 
>>> OoO Pendant le  journal télévisé du lundi 07  novembre 2011, vers 20:16,
>>> Mir Islam <[email protected]> disait :
>>> 
>>>> Yea that is the problem. Right now SSL is terminated at the
>>>> application level on each server. There is no way to inspect the
>>>> cookie even if the server sets one. Sticky session in TCP mode can be
>>>> done by source IP (that is why I have balance source). But that
>>>> creates the other problem as I mentioned. Folks coming from behind
>>>> NAT will hit the same server and not get load balanced. Because
>>>> HAProxy will think they are all the same. I was trying to find out if
>>>> there is something else that could be done. From my own logical
>>>> reasoning, no. :) but I have been wrong before so I was hoping
>>>> someone had similar issue.
>>> 
>>> See this post:
>>> http://blog.exceliance.fr/2011/07/04/maintain-affinity-based-on-ssl-session-id/
>>> 
>>> While  this  won't work,  in  theory, if  client  is  requesting to  use
>>> tickets, almost  all clients keep the  right session ID  even when using
>>> tickets. You  should of course ensure  that a client will  keep the same
>>> session ID all  the time.  This means that you need  to ensure that your
>>> web server is able to resume session with and without tickets correctly.
>>> For example, with nginx, you need to configure a session cache.
>>> --
>>> Vincent Bernat ☯ http://vincent.bernat.im
>>> 
>>> Keep it right when you make it faster.
>>>            - The Elements of Programming Style (Kernighan & Plauger)
>> 
>> 
>> 


Reply via email to