{"id":35486,"date":"2019-10-31T22:04:36","date_gmt":"2019-10-31T19:04:36","guid":{"rendered":"https:\/\/prohoster.info\/blog\/vypusk-http-tcp-balansirovshhika-haproxy-2-0\/"},"modified":"2019-10-31T22:04:36","modified_gmt":"2019-10-31T19:04:36","slug":"vypusk-http-tcp-balansirovshhika-haproxy-2-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-http-tcp-balansirovshhika-haproxy-2-0","title":{"rendered":"Rilascio del bilanciatore HTTP\/TCP HAProxy 2.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.haproxy.com\/blog\/haproxy-2-0-and-beyond\/\">Pubblicato<\/a><\/noindex> rilascio del bilanciatore di carico <noindex><a rel=\"nofollow\" href=\"http:\/\/www.haproxy.org\">HAProxy 2.0<\/a><\/noindex>, che consente di distribuire il traffico HTTP e le richieste TCP arbitrarie tra un gruppo di server, tenendo conto di molti fattori (ad esempio, verifica la disponibilit\u00e0 dei server, valuta il livello di carico, dispone di misure contro DDoS) e svolge un filtro iniziale dei dati (ad esempio, \u00e8 possibile analizzare le intestazioni HTTP, filtrare la trasmissione di parametri di richiesta non validi, bloccare l'inserimento di SQL e XSS, collegare agenti di elaborazione dei contenuti). HAProxy pu\u00f2 anche <noindex><a rel=\"nofollow\" href=\"https:\/\/www.haproxy.com\/solutions\/microservices\/\">essere utilizzato<\/a><\/noindex> per coordinare l'interazione dei componenti in sistemi basati su architettura a microservizi. Il codice del progetto \u00e8 scritto in linguaggio C e <noindex><a rel=\"nofollow\" href=\"http:\/\/git.haproxy.org\/\">fornito<\/a><\/noindex> \u00e8 sotto licenza GPLv2. Il progetto \u00e8 utilizzato su molti grandi siti, tra cui Airbnb, Alibaba, GitHub, Imgur, Instagram, Reddit, StackOverflow, Tumblr, Twitter e Vimeo.<\/p>\n<p>Caratteristiche principali del rilascio:<\/p>\n<ul>\n<li class=\"l\"> \u00c8 stato presentato un nuovo API <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/haproxytech\/dataplaneapi\">Data Plan<\/a><\/noindex>, che consente di gestire al volo le impostazioni di HAProxy tramite REST Web API. \u00c8 possibile inoltre aggiungere e rimuovere dinamicamente backend e server, creare ACL, modificare il routing delle richieste, cambiare le associazioni degli handler agli IP;\n<li class=\"l\"> \u00c8 stata aggiunta la direttiva nbthread, che consente di configurare il numero di thread utilizzati da HAProxy per ottimizzare il funzionamento su CPU multicore. Di default, il numero di thread di lavoro viene scelto in base ai core CPU disponibili nell'ambiente attuale, mentre negli ambienti cloud \u00e8 impostato un thread di default. Per impostare limiti rigidi sono state aggiunte opzioni di build MAX_THREADS e MAX_PROCS, che limitano il numero massimo di thread e processi;\n<li class=\"l\"> Semplificato l'uso della direttiva bind per collegare gestori agli indirizzi di rete. Nella configurazione ora non \u00e8 necessario definire i parametri del processo \u2014 per impostazione predefinita, le connessioni saranno distribuite nei flussi in base al numero di connessioni attive.\n<li class=\"l\"> Semplificata la configurazione dei log durante l'avvio in contenitori isolati \u2014 il log pu\u00f2 ora essere diretto a stdout e stderr, cos\u00ec come a qualsiasi descrittore di file esistente (ad esempio, \u00ablog fd@1 local0\u00bb);\n<li class=\"l\"> Supporto HTX (Rappresentazione HTTP nativa) abilitato per impostazione predefinita, che consente un bilanciamento utilizzando funzionalit\u00e0 avanzate come HTTP\/2 end-to-end, Layer 7 Retries e gRPC. HTX non sostituisce gli header in loco, ma riduce l'operazione di modifica alla rimozione e all'aggiunta di un nuovo header alla fine dell'elenco, consentendo di manipolare qualsiasi variante avanzata del protocollo HTTP, mantenendo la semantica originale degli header e permettendo una maggiore efficienza nella traduzione di HTTP\/2 in HTTP\/1.1 e viceversa;\n<li class=\"l\"> Aggiunto supporto ufficiale per la modalit\u00e0 End-to-End HTTP\/2 (gestione di tutte le fasi in HTTP\/2, inclusi i richiami al backend, non solo le interazioni del proxy con il cliente);\n<li class=\"l\"> Implementato supporto completo per il proxying bidirezionale del protocollo gRPC con la capacit\u00e0 di analizzare i flussi gRPC, evidenziando messaggi individuali, registrando il traffico gRPC nel log e filtrando i messaggi tramite ACL. gRPC consente di organizzare il lavoro dei microservizi in diversi linguaggi di programmazione, che interagiscono tra loro tramite un'API universale. L'interazione in rete in gRPC \u00e8 implementata sopra il protocollo HTTP\/2 e si basa sull'uso dei Protocol Buffers per la serializzazione dei dati.\n<li class=\"l\"> Aggiunta la supporto alla modalit\u00e0 \u00abLayer 7 Retries\u00bb, che consente di inviare richieste HTTP ripetute in caso di errori software non legati a problemi di connessione di rete (ad esempio, in caso di risposta assente o risposta vuota a una richiesta POST). Per disattivare la modalit\u00e0, \u00e8 stato aggiunto il flag \u00abdisable-l7-retry\u00bb all'opzione \u00abhttp-request\u00bb, mentre per la regolazione fine sono state aggiunte nelle sezioni defaults, listen e backend l'opzione \u00abretry-on\u00bb. Sono disponibili i seguenti indicatori per la ripetizione: all-retryable-errors, none, conn-failure, empty-response, junk-response, response-timeout, 0rtt-rejected, e il collegamento ai codici di risposta (404, ecc.);\n<li class=\"l\"> Implementato un nuovo gestore di processi (Process Manager), che consente di configurare la chiamata a file eseguibili esterni con gestori per HAProxy.<br \/>\nAd esempio, un gestore esterno come API Data Plan (\/usr\/sbin\/dataplaneapi) \u00e8 stato implementato, cos\u00ec come vari motori di offload per l'elaborazione dei flussi;<\/p>\n<li class=\"l\"> Per .NET Core, Go, Lua e Python sono stati aggiunti dei binding per lo sviluppo di estensioni SPOE (Stream Processing Offload Engine) e SPOP (Stream Processing Offload Protocol). In precedenza, era supportato solo lo sviluppo di estensioni in C;\n<li class=\"l\"> Aggiunto il gestore esterno spoa-mirror (\\\/usr\\\/sbin\\\/spoa-mirror) per il mirroring delle richieste su un server separato (ad esempio, per copiare parte del traffico di lavoro per testare un ambiente sperimentale sotto carico reale);\n<li class=\"l\"> Presentato  <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/haproxytech\/kubernetes-ingress\/\">HAProxy Kubernetes Ingress Controller<\/a><\/noindex> per garantire l'integrazione con la piattaforma Kubernetes;\n<li class=\"l\"> Aggiunta la supporto integrato per l'esportazione delle statistiche nel sistema di monitoraggio. <noindex><a rel=\"nofollow\" href=\"https:\/\/prometheus.io\/\">Prometheus<\/a><\/noindex>;\n<li class=\"l\"> Espanso il protocollo Peers Protocol, utilizzato per lo scambio di informazioni tra altri nodi con HAProxy. Inclusa la supporto per Heartbeat e trasmissione dati crittografata;\n<li class=\"l\"> Nella direttiva \u00ablog\u00bb aggiunto il parametro \u00absample\u00bb, che consente di registrare solo una parte delle richieste, ad esempio 1 su 10, per la formazione di un campione analitico;\n<li class=\"l\"> Aggiunta la modalit\u00e0 di profilazione automatica (direttiva profiling.tasks, che pu\u00f2 assumere i valori auto, on e off). La profilazione automatica si attiva se il valore medio di latenza supera il limite di 1000 ms. Per visualizzare i dati di profilazione nell'API Runtime \u00e8 stata aggiunta il comando \u00abshow profiling\u00bb o \u00e8 disponibile la possibilit\u00e0 di azzerare le statistiche nel log;\n<li class=\"l\"> Aggiunta la supporto per l'accesso ai server backend utilizzando il protocollo SOCKS4;\n<li class=\"l\"> Aggiunta il supporto end-to-end per il meccanismo TCP Fast Open (TFO \u2014 TCP Fast Open, RFC 7413), che consente di ridurre il numero di passi per l'instaurazione della connessione combinando in una sola richiesta i primi due passaggi del classico processo di negoziazione della connessione in tre fasi e consente l'invio di dati nella fase iniziale di instaurazione della connessione;\n<li class=\"l\"> Aggiunte nuove azioni:\n<ul>\n<li class=\"l\"> \u00abhttp-request replace-uri\u00bb per sostituire l'URL utilizzando espressioni regolari;\n<li class=\"l\"> \u00abtcp-request content do-resolve\u00bb e \u00abhttp-request do-resolve\u00bb per la risoluzione del nome host;\n<li class=\"l\">  \u00abtcp-request content set-dst\u00bb e \u00abtcp-request content set-dst-port\u00bb per inserire l'indirizzo IP di destinazione e la porta.\n<\/ul>\n<li class=\"l\"> Aggiunti nuovi moduli di conversione:\n<ul>\n<li class=\"l\"> aes_gcm_dev per la decodifica di flussi utilizzando algoritmi AES128-GCM, AES192-GCM e AES256-GCM;\n<li class=\"l\"> protobuf per l'estrazione dei campi dai messaggi Protocol Buffers;\n<li class=\"l\"> ungrpc per l'estrazione dei campi dai messaggi gRPC.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Fonte: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=50904\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 HAProxy 2.0, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c HTTP-\u0442\u0440\u0430\u0444\u0438\u043a \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0435 TCP-\u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043c\u0435\u0436\u0434\u0443 \u0433\u0440\u0443\u043f\u043f\u043e\u0439 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0444\u0430\u043a\u0442\u043e\u0440\u043e\u0432 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432, \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0435\u0442 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0438\u043c\u0435\u0435\u0442 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f DDoS) \u0438 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u0443\u044e \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044e \u0434\u0430\u043d\u043d\u044b\u0445 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c HTTP-\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438, \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 SQL \u0438 XSS, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0430\u0433\u0435\u043d\u0442\u044b \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430). HAProxy \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-35486","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 HAProxy.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-http-tcp-balansirovshhika-haproxy-2-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a HTTP\/TCP-\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 HAProxy 2.0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 HAProxy.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-http-tcp-balansirovshhika-haproxy-2-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:04:36+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:04:36+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Rilascio del bilanciatore HAProxy HTTP\\\/TCP 2.0 | ProHoster","description":"Pubblicato il rilascio del bilanciatore di carico HAProxy.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-http-tcp-balansirovshhika-haproxy-2-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a HTTP\/TCP-\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 HAProxy 2.0 | ProHoster","og:description":"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 HAProxy.","og:url":"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-http-tcp-balansirovshhika-haproxy-2-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:04:36+00:00","article:modified_time":"2019-10-31T19:04:36+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35486","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 23:28:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:01:26","updated":"2026-01-21 23:28:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/35486","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=35486"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/35486\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=35486"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=35486"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=35486"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}