Hi Igor,
the config is set to "mode http" (see below) only the log output is set
to "tcplog" to be able to get a more detailed log output. Please correct
me if I'm wrong but regarding to the config HTTP-mode is (or at least
should be) used.
defaults
log global
option tcplog
log-format %f\ %b/%s\ client_ip:%ci\ client_port:%cp\
SSL_version:%sslv\ SSL_cypher:%sslc\ %ts\ Tt:%Tt\ Tq:%Tq\ Tw:%Tw\
Tc:%Tc\ Tr:%Tr
mode http
timeout connect 5000
timeout check 5000
timeout client 30000
timeout server 30000
retries 3
frontend ndc
http-response set-header Strict-Transport-Security
max-age=31536000;\ includeSubdomains;\ preload
http-response set-header X-Content-Type-Options nosniff
bind *:443 ssl crt /opt/etc/haproxy/domain_com.pem force-tlsv12
no-sslv3
maxconn 20000
acl fare_availability path_beg /ndc/fare/v1/availability
acl flight_availability path_beg /ndc/flight/v1/availability
use_backend vakanz-backend if flight_availability or fare_availability
default_backend booking-backend
backend booking-backend
server 10.2.8.28 10.2.8.23:8443 check ssl verify none minconn 500
maxconn 500
backend vakanz-backend
server 10.2.8.28 10.2.8.28:8443 check ssl verify none minconn 500
maxconn 500
server 10.2.8.40 10.2.8.40:8443 check ssl verify none minconn 500
maxconn 500
server 10.2.8.41 10.2.8.41:8443 check ssl verify none minconn 500
maxconn 500
Regards,
Daniel
Am 21.06.17 um 11:37 schrieb Igor Cicimov:
On 21 Jun 2017 6:34 pm, "Daniel Heitepriem"
<[email protected] <mailto:[email protected]>>
wrote:
Nothing special. No errors, no dropped connections just an
increased server response time (Tr). An excerpt from low and high
traffic times is below:
Jun 20 18:05:29 localhost haproxy[13426]: ndc
vakanz-backend/10.2.8.28 <http://10.2.8.28>
client_ip:193.XX.XX.XXX client_port:50876 SSL_version:TLSv1.2
SSL_cypher:DHE-RSA-AES256-GCM-SHA384 -- Tt:157 Tq:95 Tw:0 Tc:2 Tr:60
Jun 20 18:05:29 localhost haproxy[13426]: ndc
vakanz-backend/10.2.8.41 <http://10.2.8.41>
client_ip:193.XX.XX.XXX client_port:32910 SSL_version:TLSv1.2
SSL_cypher:DHE-RSA-AES256-GCM-SHA384 -- Tt:148 Tq:82 Tw:0 Tc:1 Tr:65
Jun 20 18:05:30 localhost haproxy[13426]: ndc
vakanz-backend/10.2.8.40 <http://10.2.8.40>
client_ip:193.XX.XX.XXX client_port:51077 SSL_version:TLSv1.2
SSL_cypher:DHE-RSA-AES256-GCM-SHA384 -- Tt:525 Tq:312 Tw:0 Tc:2 Tr:211
Jun 20 22:05:36 localhost haproxy[13426]: ndc
vakanz-backend/10.2.8.28 <http://10.2.8.28>
client_ip:193.XX.XX.XXX client_port:48936 SSL_version:TLSv1.2
SSL_cypher:DHE-RSA-AES256-GCM-SHA384 -- Tt:25368 Tq:101 Tw:0 Tc:3
Tr:25264
Jun 20 22:05:36 localhost haproxy[13426]: ndc
vakanz-backend/10.2.8.41 <http://10.2.8.41>
client_ip:193.XX.XX.XXX client_port:43030 SSL_version:TLSv1.2
SSL_cypher:DHE-RSA-AES256-GCM-SHA384 -- Tt:23474 Tq:88 Tw:0 Tc:2
Tr:23383
Jun 20 22:05:36 localhost haproxy[13426]: ndc
vakanz-backend/10.2.8.40 <http://10.2.8.40>
client_ip:193.XX.XX.XXX client_port:18935 SSL_version:TLSv1.2
SSL_cypher:DHE-RSA-AES256-GCM-SHA384 -- Tt:26150 Tq:106 Tw:0 Tc:3
Tr:26040
Am 21.06.17 um 10:21 schrieb Igor Cicimov:
On 21 Jun 2017 6:11 pm, "Daniel Heitepriem"
<[email protected]
<mailto:[email protected]>> wrote:
Hi Jarno,
yes we are decrypting TLS on the frontend (official
SSL-certificate) and re-encrypt it before sending it to the
backend (company policy so not that easy to change it to an
unencrypted connection). The CPU usage is not higher than
15-20% even during peak times and the memory usage is also
quite low (200-800MB).
Regards,
Daniel
Am 21.06.17 um 10:00 schrieb Jarno Huuskonen:
Hi,
On Wed, Jun 21, Daniel Heitepriem wrote:
we got a problem recently which we can't explain to
ourself. We got
a java application (Tomcat WAR-File) which has to
handle several
million of requests per day and several thousand
requests per second
during peak times. Due to this high amount we are
splitting traffic
using an ACL in "booking traffic" and "availability
traffic".
Booking traffic is negligible but the Availability
traffic is
load-balanced over several application servers. The
problem that
occurs is that our external partner "floods" the
Availability-Frontend with several thousand requests
per second and
the backend becomes unresponsive. If we redirect them
directly to
Looks like you're decrypting tls/ssl on frontend and then
re-encrypting on backend/server. Is one core(you're not
using nbproc?)
able to handle thousand ssl requests coming in and going
out ?
(is haproxy process using 100% cpu).
-Jarno
What do you see in the haproxy log when the problem happens?
Daniel, if using ssl to the backends shouldn't you use http mode? Per
your config you are using tcp which is default one. Afaik tcp is for
ssl passthrough.