{"id":91701,"date":"2020-08-17T07:42:05","date_gmt":"2020-08-17T05:42:05","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/kak-sluchajno-napisat-web-gui-dlya-haproxy"},"modified":"2020-08-17T07:42:05","modified_gmt":"2020-08-17T05:42:05","slug":"kak-sluchajno-napisat-web-gui-dlya-haproxy","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/kak-sluchajno-napisat-web-gui-dlya-haproxy","title":{"rendered":"Come scrivere casualmente una Web-GUI per Haproxy","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Il mondo moderno degli amministratori di sistema ci ha viziato con interfacce web cos\u00ec belle che nemmeno ci viene voglia di installare software privo di questo \"GUI\" (sento gi\u00e0 le critiche dei puristi). Dopotutto, non \u00e8 certo piacevole dover accedere sulla riga di comando continuamente, vero? Tutto sarebbe perfetto se potessimo installare il software, configurarlo e poi dimenticarcelo; ma cosa fare se dobbiamo accedere frequentemente, modificare, e, ovviamente, non c'\u00e8 un registro di tutte le azioni? Non possiamo scrivere ogni volta cp cfg cfg_back, altrimenti con il passare del tempo ci perderemmo e smetteremmo di farlo.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/lm\/yl\/3g\/lmyl3gjbzhzlqdig_cmrzg3yl3w.jpeg\"><img decoding=\"async\" alt=\"Come scrivere casualmente una Web-GUI per Haproxy\" src=\"\/wp-content\/uploads\/2020\/08\/874da79a28fbc29d1fd6511463ba14a5.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nAnni fa, ho incontrato un fantastico bilanciatore chiamato Haproxy. \u00c8 tutto cos\u00ec meraviglioso e bello. Ora ne ho molti e ho iniziato a cercare un GUI per lui, ma sorprendentemente non ce n'era. \u00c8 un software molto popolare e anche piuttosto vecchio, ma va bene, ho pensato, e ho continuato a modificare di tanto in tanto con il mio amato vi, avendo un sacco di schede aperte con le statistiche di tutti gli attivi. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/it\/server\/\"   title=\"server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1510\">server<\/a>Ma \u00e8 arrivato il momento in cui ho dovuto soddisfare le \"richieste\" delle persone che scrivevano software per lavorare tramite http, ed \u00e8 qui che \u00e8 iniziato l'interessante... <\/p>\n<p>Le mani hanno iniziato a prudere, gli occhi si sono illuminati e ho cominciato. Anzi, ho iniziato a pensare a cosa scrivere, ricordando il PHP dimenticato da tempo, che in effetti non sembrava adatto a questo scopo. Alla fine, ho scelto Python; ho pensato che sarebbe stato sicuramente utile in futuro, e cos\u00ec \u00e8 cominciato l'assorbimento di informazioni.<\/p>\n<p>All'inizio, i requisiti del progetto non erano cos\u00ec complessi: la possibilit\u00e0 di modificare i file di configurazione da un'interfaccia web da un unico punto di accesso, e la conservazione delle versioni precedenti delle configurazioni. Questo funzionalit\u00e0, non particolarmente grande, \u00e8 stata realizzata piuttosto rapidamente, ma qui \u00e8 emersa in me una sorta di pigrizia da amministratore, o forse il noto perfezionismo, e mi \u00e8 sembrato ovviamente poco. E cos\u00ec sono iniziate a comparire caratteristiche come: il confronto tra due configurazioni, il logging di tutte le azioni relative alle configurazioni, un'API Runtime e l'aggiunta di sezioni tramite web.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/tx\/rk\/hg\/txrkhgoa8-zmpuvx1gswjkj2vou.jpeg\"><img decoding=\"async\" alt=\"Come scrivere casualmente una Web-GUI per Haproxy\" src=\"\/wp-content\/uploads\/2020\/08\/abb93ee655e49bddd7367821eec781d0.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>E come un rispettabile amministratore UNIX che vive grazie al software libero, ho deciso di condividere con il mondo, magari a qualcuno potrebbe servire. Ma per farlo, era necessario fare in modo che non fosse necessario entrare nel codice, ma al massimo nel file di configurazione (Ora la maggior parte delle impostazioni \u00e8 migrata nel database. A mio avviso, \u00e8 diventato pi\u00f9 facile modificarle e durante gli aggiornamenti non ci saranno errori a causa dell'assenza di qualche parametro nel file di configurazione). <\/p>\n<p>Dopo un mese, ho pubblicato il mio progetto su Github senza aspettarmi nulla di particolare. Invece, il software si \u00e8 rivelato essere abbastanza richiesto e qui \u00e8 iniziato il bello\u2026 L'attivit\u00e0 di sviluppo \u00e8 in corso da quasi un anno. A volte ho voglia di mollare tutto, dato che le mie esigenze sono gi\u00e0 state soddisfatte da tempo. Ma a cosa mi serve la possibilit\u00e0 di implementare un \"cluster\" con keepalived e HAProxy tramite un'interfaccia web, se mi ci vogliono al massimo un paio di minuti? Eppure, sembra che ci sia bisogno di queste funzionalit\u00e0, e a me interessa, oltre ad avere qualcosa da fare. Certamente ci sono anche funzioni che mi servono, come il monitoraggio dei server backend, per vedere se sono disponibili per Haproxy. Abbiamo ovviamente un monitoraggio aziendale, ma ci sono persone che possono impiegare tempo per rispondere, e poich\u00e9 il mio dipartimento si occupa di sviluppo, il software appare e scompare, quindi spesso \u00e8 difficile superare la burocrazia.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/_b\/th\/pl\/_bthplwgh1ggsiutfblcd6exbg4.jpeg\"><img decoding=\"async\" alt=\"Come scrivere casualmente una Web-GUI per Haproxy\" src=\"\/wp-content\/uploads\/2020\/08\/72427d65430c891959b68c54efd8ab4a.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>In conclusione, ho deciso di condividerlo, dato che sembra essere l'unico GUI gratuito. E magari a qualcuno potrebbe tornare utile! <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Aidaho12\/haproxy-wi\">Link su GitHub<\/a><\/noindex>.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/419865\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043c\u0438\u0440 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u043e\u0431\u043b\u0435\u043d\u0438\u043b \u043d\u0430\u0441 \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u043c\u0438 web-face-\u0430\u043c\u0438, \u0447\u0442\u043e \u0434\u0430\u0436\u0435 \u043d\u0435 \u043e\u0445\u043e\u0442\u0430 \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u0444\u0442, \u0433\u0434\u0435 \u043d\u0435\u0442 \u044d\u0442\u043e\u0433\u043e \u0441\u0430\u043c\u043e\u0433\u043e \u00ab\u0433\u0443\u044f\u00bb (\u0447\u0443\u0432\u0441\u0442\u0432\u0443\u044e \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u043b\u0435\u0442\u044f\u0442 \u043a\u0430\u043c\u043d\u0438 \u043e\u0442 \u043f\u0440\u0430\u0432\u043e\u0432\u0435\u0440\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u0447\u043a\u0435\u0440\u043e\u0432), \u043d\u0443 \u043d\u0435 \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0440\u043e\u043a\u0443 \u0436\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0442\u0443\u0434\u0430 \u043b\u0430\u0437\u0438\u0442\u044c, \u043f\u0440\u0430\u0432\u0434\u0430? \u0412\u0441\u0435 \u0431\u044b \u043d\u0438\u0447\u0435\u0433\u043e, \u0435\u0441\u043b\u0438 \u0441\u043e\u0444\u0442 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b \u0438 \u0437\u0430\u0431\u044b\u043b, \u0430 \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u0442\u0443\u0434\u0430 \u043d\u0430\u0434\u043e \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043b\u0430\u0437\u0438\u0442\u044c, \u043f\u0440\u0430\u0432\u0438\u0442\u044c, \u043d\u0443 \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":91702,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-91701","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043c\u0438\u0440 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u043e\u0431\u043b\u0435\u043d\u0438\u043b \u043d\u0430\u0441 \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u043c\u0438 web-face-\u0430\u043c\u0438, \u0447\u0442\u043e \u0434\u0430\u0436\u0435 \u043d\u0435 \u043e\u0445\u043e\u0442\u0430 \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u0444\u0442, \u0433\u0434\u0435 \u043d\u0435\u0442 \u044d\u0442\u043e\u0433\u043e \u0441\u0430\u043c\u043e\u0433\u043e \u00ab\u0433\u0443\u044f\u00bb (\u0447\u0443\u0432\u0441\u0442\u0432\u0443\u044e \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u043b\u0435\u0442\u044f\u0442 \u043a\u0430\u043c\u043d\u0438 \u043e\u0442 \u043f\u0440\u0430\u0432\u043e\u0432\u0435\u0440\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u0447\u043a\u0435\u0440\u043e\u0432), \u043d\u0443 \u043d\u0435 \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0440\u043e\u043a\u0443 \u0436\u0435.\" \/>\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\/administrirovanie\/kak-sluchajno-napisat-web-gui-dlya-haproxy\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.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\u041a\u0430\u043a \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c Web-GUI \u0434\u043b\u044f Haproxy | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043c\u0438\u0440 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u043e\u0431\u043b\u0435\u043d\u0438\u043b \u043d\u0430\u0441 \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u043c\u0438 web-face-\u0430\u043c\u0438, \u0447\u0442\u043e \u0434\u0430\u0436\u0435 \u043d\u0435 \u043e\u0445\u043e\u0442\u0430 \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u0444\u0442, \u0433\u0434\u0435 \u043d\u0435\u0442 \u044d\u0442\u043e\u0433\u043e \u0441\u0430\u043c\u043e\u0433\u043e \u00ab\u0433\u0443\u044f\u00bb (\u0447\u0443\u0432\u0441\u0442\u0432\u0443\u044e \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u043b\u0435\u0442\u044f\u0442 \u043a\u0430\u043c\u043d\u0438 \u043e\u0442 \u043f\u0440\u0430\u0432\u043e\u0432\u0435\u0440\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u0447\u043a\u0435\u0440\u043e\u0432), \u043d\u0443 \u043d\u0435 \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0440\u043e\u043a\u0443 \u0436\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/kak-sluchajno-napisat-web-gui-dlya-haproxy\" \/>\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=\"2020-08-17T05:42:05+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-17T05:42:05+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\udd47Come scrivere accidentalmente una Web-GUI per Haproxy | ProHoster","description":"Il mondo moderno degli amministratori di sistema ci ha viziato con interfacce web cos\u00ec belle che non abbiamo nemmeno voglia di installare software che non abbia quel \"gui\" (sento che ora arriveranno critiche dai puristi della linea di comando), non si pu\u00f2 usare solo il terminale.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/kak-sluchajno-napisat-web-gui-dlya-haproxy","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\u041a\u0430\u043a \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c Web-GUI \u0434\u043b\u044f Haproxy | ProHoster","og:description":"\u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043c\u0438\u0440 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u043e\u0431\u043b\u0435\u043d\u0438\u043b \u043d\u0430\u0441 \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u043c\u0438 web-face-\u0430\u043c\u0438, \u0447\u0442\u043e \u0434\u0430\u0436\u0435 \u043d\u0435 \u043e\u0445\u043e\u0442\u0430 \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u0444\u0442, \u0433\u0434\u0435 \u043d\u0435\u0442 \u044d\u0442\u043e\u0433\u043e \u0441\u0430\u043c\u043e\u0433\u043e \u00ab\u0433\u0443\u044f\u00bb (\u0447\u0443\u0432\u0441\u0442\u0432\u0443\u044e \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u043b\u0435\u0442\u044f\u0442 \u043a\u0430\u043c\u043d\u0438 \u043e\u0442 \u043f\u0440\u0430\u0432\u043e\u0432\u0435\u0440\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u0447\u043a\u0435\u0440\u043e\u0432), \u043d\u0443 \u043d\u0435 \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0440\u043e\u043a\u0443 \u0436\u0435.","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/kak-sluchajno-napisat-web-gui-dlya-haproxy","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":"2020-08-17T05:42:05+00:00","article:modified_time":"2020-08-17T05:42:05+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"91701","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:22:24","updated":"2026-02-09 16:50:33","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\/91701","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=91701"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/91701\/revisions"}],"predecessor-version":[{"id":158754,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/91701\/revisions\/158754"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/91702"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=91701"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=91701"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=91701"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}