{"id":105117,"date":"2022-09-16T15:36:39","date_gmt":"2022-09-16T13:36:40","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/cloudflare-pereshyol-s-nginx-na-sobstvennyj-prokci-pingora-napisannyj-na-yazyke-rust"},"modified":"2022-09-16T15:36:39","modified_gmt":"2022-09-16T13:36:40","slug":"cloudflare-pereshyol-s-nginx-na-sobstvennyj-prokci-pingora-napisannyj-na-yazyke-rust","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/news\/cloudflare-pereshyol-s-nginx-na-sobstvennyj-prokci-pingora-napisannyj-na-yazyke-rust","title":{"rendered":"Cloudflare \u00e8 passato da NGINX al suo proxy Pingora, scritto in Rust","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>L'azienda Cloudflare ha annunciato di aver trasferito la propria rete di distribuzione dei contenuti all'uso del proxy Pingora, scritto in Rust. Il nuovo proxy ha sostituito la configurazione basata su server NGINX con script Lua e gestisce oltre un trilione di richieste al giorno. \u00c8 stato osservato che il passaggio a un proxy specializzato ha non solo consentito di implementare nuove funzionalit\u00e0 e aumentare la sicurezza attraverso una gestione della memoria sicura, ma ha anche portato a un notevole aumento delle prestazioni e a un risparmio di risorse: la soluzione basata su Pingora non richiede l'uso di Lua, quindi consuma il 70% di risorse CPU in meno e il 67% di memoria in meno durante l'elaborazione dello stesso volume di traffico.     <\/p>\n<p>Per lungo tempo, il sistema di proxying del traffico tra gli utenti e i finali <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/it\/server\/dts-dusseldorf\/\"   title=\"server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3455\">server<\/a> basato su NGINX e script Lua ha soddisfatto le esigenze di Cloudflare, ma con la crescita della rete e l'aumento della sua complessit\u00e0, la soluzione universale si \u00e8 rivelata insufficiente sia in termini di prestazioni sia a causa delle limitazioni in termini di scalabilit\u00e0 e implementazione di nuove funzionalit\u00e0 per i clienti. In particolare, sono emerse difficolt\u00e0 nell'aggiungere funzionalit\u00e0 che andassero oltre un semplice gateway e bilanciatore di carico. Ad esempio, si \u00e8 rivelata necessaria, in caso di errore nel trattamento della richiesta, <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/it\/server\/dts-prohoster\/\"   title=\"server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3061\">server<\/a> reindirizzare nuovamente la richiesta a un altro server, fornendo un diverso set di intestazioni HTTP.          <\/p>\n<p>Invece di un'architettura con la suddivisione delle richieste in singoli processi gestori (worker), Pingora utilizza un modello multithreading, che negli scenari di utilizzo di Cloudflare (alta concentrazione di traffico da diversi siti con un grande spostamento statistico) ha dimostrato una distribuzione delle risorse pi\u00f9 efficace tra i core CPU. In particolare, l'assegnazione di richieste non bilanciate a processi in nginx portava a un carico sbilanciato sui core CPU, di conseguenza, richieste ad alta intensit\u00e0 di risorse e input\/output bloccanti rallentavano l'elaborazione di altre richieste. Inoltre, l'assegnazione di un pool di connessioni a processi gestori non permetteva di riutilizzare connessioni gi\u00e0 stabilite da altri processi gestori, il che riduceva l'efficienza del lavoro con un numero elevato di processi gestori.         <\/p>\n<p>NGINX:  <center><img decoding=\"async\" alt=\"Cloudflare \u00e8 passato da NGINX al suo proxy Pingora, scritto in Rust\" src=\"\/wp-content\/uploads\/2022\/09\/a8253ce07419bc21d135e1b63bc1756a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/center>  <\/p>\n<p>Pingora:  <center><img decoding=\"async\" alt=\"Cloudflare \u00e8 passato da NGINX al suo proxy Pingora, scritto in Rust\" src=\"\/wp-content\/uploads\/2022\/09\/62cc18ce7d7dec60b2b72befc37dd79e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <\/p>\n<p>L'implementazione di Pingora ha permesso di ridurre 160 volte il numero di operazioni per l'installazione di nuove connessioni e di aumentare la proporzione di richieste riutilizzabili dall'87,1% al 99,92%. Oltre alla riduzione delle connessioni ripetute e a un utilizzo pi\u00f9 efficiente dei core CPU, l'aumento delle prestazioni del nuovo proxy \u00e8 stato principalmente facilitato dall'eliminazione dei gestori lenti scritti in Lua utilizzati con nginx.     <\/p>\n<p>Il linguaggio Rust \u00e8 stato scelto per la sua capacit\u00e0 di offrire elevate prestazioni con la combinazione di strumenti per garantire un uso sicuro della memoria. Si segnala che, nonostante l'alta qualificazione degli ingegneri di Cloudflare e la revisione del codice scritto in C, non si \u00e8 riusciti a evitare errori che portano a problemi di memoria (ad esempio, una vulnerabilit\u00e0 nel parser HTML). Per quanto riguarda il nuovo codice, sono stati riportati casi di parsing di errori in Pingora, causati non da problemi nell'applicazione, ma da un errore nel kernel Linux e da guasti hardware.      <\/p>\n<p>Inoltre, si pu\u00f2 evidenziare il commento di Linus Torvalds riguardo all'inclusione del supporto per il linguaggio Rust nel kernel Linux, espresso alla conferenza Open-Source Summit Europe in corso. Nei patch del kernel 6.0 non sono state incluse le patch per lo sviluppo di driver di dispositivi scritti in Rust, ma secondo Linus, saranno probabilmente accettate nel kernel 6.1, non ha intenzione di ritardare l'integrazione. Tra le motivazioni per aggiungere il supporto a Rust, oltre al suo impatto positivo sulla sicurezza, Linus menziona anche la possibilit\u00e0 di aumentare l'interesse dei nuovi partecipanti nel lavorare sul kernel, cosa rilevante considerando il pensionamento dei veterani.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=57793\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Cloudflare \u0441\u043e\u043e\u0431\u0449\u0438\u043b\u0430 \u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0435 \u0441\u0432\u043e\u0435\u0439 \u0441\u0435\u0442\u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u043a\u0441\u0438 Pingora, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust. \u041d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 NGINX \u0441 Lua-\u0441\u043a\u0440\u0438\u043f\u0442\u0430\u043c\u0438, \u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0434\u0435\u043d\u044c. \u041e\u0442\u043c\u0435\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u043e\u0441\u0442\u044c \u0437\u0430 \u0441\u0447\u0451\u0442 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":105118,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-105117","post","type-post","status-publish","format-standard","has-post-thumbnail","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=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Cloudflare \u0441\u043e\u043e\u0431\u0449\u0438\u043b\u0430 \u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0435 \u0441\u0432\u043e\u0435\u0439 \u0441\u0435\u0442\u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u043a\u0441\u0438 Pingora, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust.\" \/>\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\/cloudflare-pereshyol-s-nginx-na-sobstvennyj-prokci-pingora-napisannyj-na-yazyke-rust\" \/>\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\udd47Cloudflare \u043f\u0435\u0440\u0435\u0448\u0451\u043b \u0441 NGINX \u043d\u0430 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u043ac\u0438 Pingora, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Cloudflare \u0441\u043e\u043e\u0431\u0449\u0438\u043b\u0430 \u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0435 \u0441\u0432\u043e\u0435\u0439 \u0441\u0435\u0442\u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u043a\u0441\u0438 Pingora, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/news\/cloudflare-pereshyol-s-nginx-na-sobstvennyj-prokci-pingora-napisannyj-na-yazyke-rust\" \/>\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=\"2022-09-16T13:36:40+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-09-16T13:36:40+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\udd47Cloudflare \u00e8 passata da NGINX al proprio proxy Pingora, scritto in Rust | ProHoster","description":"L'azienda Cloudflare ha annunciato il passaggio della propria rete di distribuzione dei contenuti all'utilizzo del proxy Pingora, scritto in Rust.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/news\/cloudflare-pereshyol-s-nginx-na-sobstvennyj-prokci-pingora-napisannyj-na-yazyke-rust","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\udd47Cloudflare \u043f\u0435\u0440\u0435\u0448\u0451\u043b \u0441 NGINX \u043d\u0430 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u043ac\u0438 Pingora, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust | ProHoster","og:description":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Cloudflare \u0441\u043e\u043e\u0431\u0449\u0438\u043b\u0430 \u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0435 \u0441\u0432\u043e\u0435\u0439 \u0441\u0435\u0442\u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u043a\u0441\u0438 Pingora, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust.","og:url":"https:\/\/prohoster.info\/it\/blog\/news\/cloudflare-pereshyol-s-nginx-na-sobstvennyj-prokci-pingora-napisannyj-na-yazyke-rust","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":"2022-09-16T13:36:40+00:00","article:modified_time":"2022-09-16T13:36:40+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"105117","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":"default","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-02-09 21:46:50","updated":"2026-02-19 09:14:05","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\/105117","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=105117"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/105117\/revisions"}],"predecessor-version":[{"id":161830,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/105117\/revisions\/161830"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/105118"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=105117"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=105117"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=105117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}