Hi,
I am trying to migrate existing app written in Go from nginx to HA-Proxy
version 1.5.14 2015/07/02 on Ubuntu 12.04. nginx/haproxy runs behind F5
load balancer. My config:
https://gist.github.com/vmihailenco/9b41016b05cdea821687 . App mainly
serves POST requests with body size 10-64kb.
First thing that I noticed after stopping nginx and starting haproxy is
that app spends more time processing requests (same server, same amount of
requests). E.g. with nginx Go responds within 1-2ms, but with haproxy
response time is in range of 100-400ms. I guess the reason is that nginx
buffers incoming request until it is fully read, but haproxy does not. What
can I do to enable request buffering in haproxy?
From the logs I also see that sometimes Go does not send response headers,
e.g.
haproxy[6607]: 149.210.205.54:54598 [01/Sep/2015:17:15:01.931] http-in
goab/s1 0/0/0/-1/1 -1 381 - - SD-- 128/128/6/6/0 0/0 {myhost} "POST /url
HTTP/1.1"
haproxy[6607]: 192.243.237.46:34628 [01/Sep/2015:17:15:12.851] http-in~
goab/s1 224/0/0/1/674 413 381 - - SD-- 128/128/15/15/0 0/0 {myhost} "POST
/url HTTP/1.1"
So these are 2 identical requests with same response body, but 2nd request
has status code = -1. I don't understand how that is possible, because if
app does not set status code Go uses 200 OK status code. And app does not
crash.
Thanks in advance for any help/advices.
I am trying to migrate existing app written in Go from nginx to HA-Proxy
version 1.5.14 2015/07/02 on Ubuntu 12.04. nginx/haproxy runs behind F5
load balancer. My config:
https://gist.github.com/vmihailenco/9b41016b05cdea821687 . App mainly
serves POST requests with body size 10-64kb.
First thing that I noticed after stopping nginx and starting haproxy is
that app spends more time processing requests (same server, same amount of
requests). E.g. with nginx Go responds within 1-2ms, but with haproxy
response time is in range of 100-400ms. I guess the reason is that nginx
buffers incoming request until it is fully read, but haproxy does not. What
can I do to enable request buffering in haproxy?
From the logs I also see that sometimes Go does not send response headers,
e.g.
haproxy[6607]: 149.210.205.54:54598 [01/Sep/2015:17:15:01.931] http-in
goab/s1 0/0/0/-1/1 -1 381 - - SD-- 128/128/6/6/0 0/0 {myhost} "POST /url
HTTP/1.1"
haproxy[6607]: 192.243.237.46:34628 [01/Sep/2015:17:15:12.851] http-in~
goab/s1 224/0/0/1/674 413 381 - - SD-- 128/128/15/15/0 0/0 {myhost} "POST
/url HTTP/1.1"
So these are 2 identical requests with same response body, but 2nd request
has status code = -1. I don't understand how that is possible, because if
app does not set status code Go uses 200 OK status code. And app does not
crash.
Thanks in advance for any help/advices.