El paso simple de TCP de haproxy da como resultado una velocidad de transferencia de red muy lenta

El paso simple de TCP de haproxy da como resultado una velocidad de transferencia de red muy lenta

Configuré una instancia de haproxy simple en una instalación limpia de Debian 10 Buster. Agregué algunas configuraciones simples y necesarias para habilitar el paso a la dirección IP en cuestión (que se ha redactado en la siguiente configuración).

El archivo de configuración:

global
    log /dev/log    local0
    log /dev/log    local1 notice

    chroot /var/lib/haproxy
    stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
    stats timeout 30s
    user haproxy
    group haproxy
    daemon

    # Default SSL material locations
    ca-base /etc/ssl/certs
    crt-base /etc/ssl/private

    # Default ciphers to use on SSL-enabled listening sockets.
    # For more information, see ciphers(1SSL). This list is from:
    #  https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
    # An alternative list with additional directives can be obtained from
    #  https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=haproxy
    ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
    ssl-default-bind-options no-sslv3

defaults
    log global
    mode    http
    option  httplog
    option  dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
    errorfile 400 /etc/haproxy/errors/400.http
    errorfile 403 /etc/haproxy/errors/403.http
    errorfile 408 /etc/haproxy/errors/408.http
    errorfile 500 /etc/haproxy/errors/500.http
    errorfile 502 /etc/haproxy/errors/502.http
    errorfile 503 /etc/haproxy/errors/503.http
    errorfile 504 /etc/haproxy/errors/504.http


frontend myfrontend
  bind *:80
  mode tcp
  default_backend mybackendhttp

frontend myfrontendhttps
  bind *:443
  mode tcp
  use_backend mybackendhttps

backend mybackendhttp
  mode tcp
  option ssl-hello-chk
  server server1 ***********:80

backend mybackendhttps
  mode tcp
  option ssl-hello-chk
  server server1 ************:443

Los cambios que hice (si hago una diferencia con el archivo original) (ip redactada):

+
+
+frontend myfrontend
+  bind *:80
+  mode tcp
+  default_backend mybackendhttp
+
+frontend myfrontendhttps
+  bind *:443
+  mode tcp
+  use_backend mybackendhttps
+
+backend mybackendhttp
+  mode tcp
+  option ssl-hello-chk
+  server server1 ***********:80
+
+backend mybackendhttps
+  mode tcp
+  option ssl-hello-chk
+  server server1 **********:443

Todo funciona correctamente, pero por alguna razón el rendimiento de la red es increíblemente lento cuando realizo una solicitud del navegador desde mi PC, solicitud curl a través de la línea de comando o dispositivo móvil, obtengo alrededor de 200-300 kb/s cuando normalmente obtengo alrededor de 10 veces. eso.

Si intento la misma solicitud a través de curl en un VPS, obtengo una velocidad mucho mayor (5000 kb/s).

El haproxy se ejecuta en una máquina virtual de instancia informática de GCP, por lo que dudo que sea un problema de ancho de banda de la red, pero puedo intentar configurar un servicio http estático simple y ver cómo se compara.

¿Cuál podría ser la causa del problema? ¿Cómo podría diagnosticar esto? ¿Habilitar los registros en haproxy proporcionaría una mejor comprensión de este problema?

Me encontré con la siguiente pregunta que también parece describir un comportamiento similar:

Respuestas SSL de HAProxy muy lentas

la biblioteca OpenSSL necesita tener el nombre de host configurado correctamente en /etc/hosts

Sin embargo, no me queda claro qué significa "configurado correctamente".

Respuesta1

Respondiendo porque no tengo suficiente reputación.

En /etc/hosts, desea encontrar esta línea:

127.0.0.1 localhost

Reemplácelo localhostcon su FQDN, como haproxy.domain.com o lo que sea. Debe ser el mismo que el nombre de host de su servidor.

En Debian, puedes configurar el nombre de host con este comando:

hostname-ctl set-hostname haproxy.domain.com

información relacionada