{"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 accidentalmente un Web-GUI per Haproxy","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Il moderno mondo degli amministratori di sistema ci ha viziato con bellissime interfacce web, tanto che non abbiamo voglia di installare software che non dispone di questo \u00abGUI\u00bb (sento gi\u00e0 le critiche da parte dei puristi delle righe di comando), beh, non \u00e8 certo bello doverci entrare di continuo, vero? Non sarebbe un problema se si potesse installare il software, configurarlo e dimenticarsene, ma cosa fare se \u00e8 necessario entrarci spesso, modificarlo e, naturalmente, non c'\u00e8 un log di tutte le azioni? Non posso scrivere ogni volta cp cfg cfg_back, alla lunga ci si confonde e si smette di seguito.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/lm\/yl\/3g\/lmyl3gjbzhzlqdig_cmrzg3yl3w.jpeg\"><img decoding=\"async\" alt=\"Come scrivere accidentalmente un 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 \/>\nMolti anni fa, ho scoperto un meraviglioso bilanciatore come Haproxy. Tutto andava splendidamente. Ne ho avuti molti e ho cominciato a cercare un GUI per esso, ma sorprendentemente non era disponibile. \u00c8 un software molto popolare e piuttosto vecchio, ma va bene, ho pensato e ho continuato a modificare di tanto in tanto il mio amato vi, tenendo aperte molte schede con la statistica di tutte le attive <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 giunto il momento in cui ho dovuto soddisfare le \u00abvoglie\u00bb delle persone che scrivevano software per lavorare tramite http, ed \u00e8 qui che \u00e8 iniziato l'interessante\u2026 <\/p>\n<p>Le mani si sono scatenate, gli occhi si sono illuminati e sono partito. In realt\u00e0, ho cominciato a pensare a cosa scrivere, ricordando un PHP che avevo dimenticato da tempo, non ne avevo molta voglia, e sembrava che non fosse adatto a questo scopo. Alla fine, ho optato per Python, pensavo che mi sarebbe stato utile in futuro, e ho iniziato a raccogliere informazioni.<\/p>\n<p>Inizialmente le sfide non erano poi cos\u00ec complesse: la possibilit\u00e0 di modificare i file di configurazione tramite un'interfaccia web da un unico punto di accesso, mantenendo versioni precedenti dei file di configurazione. Questo non molto grande funzionalit\u00e0 \u00e8 stata realizzata piuttosto rapidamente, ma qui in me \u00e8 scattata una sorta di pigrizia da amministratore, o il famoso perfezionismo e mi \u00e8 sembrato, naturalmente, poco. E cos\u00ec sono comparse funzionalit\u00e0 come: il confronto di due file di configurazione, il logging di tutte le azioni legate ai file di configurazione, un'API Runtime e l'aggiunta di sezioni, tramite il 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 accidentalmente un 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, chiss\u00e0, potrebbe servire a qualcuno? Ma per farlo ho dovuto fare in modo che non ci fosse bisogno di entrare nel codice, ma al massimo nel file di configurazione (Attualmente la maggior parte delle impostazioni \u00e8 stata trasferita nel database. A mio parere, \u00e8 diventato pi\u00f9 comodo modificarle e durante gli aggiornamenti non ci saranno errori causati dalla mancanza di qualche parametro nel file di configurazione). <\/p>\n<p>Dopo un mese ho caricato il mio progetto su Github senza aspettarmi niente di particolare. A torto, il software si \u00e8 rivelato leggermente richiesto e qui \u00e8 iniziato il bello... Il lavoro attivo \u00e8 in corso da quasi un anno. A volte ho la voglia di mollare tutto, visto che le mie esigenze sono da tempo soddisfatte. Ma perch\u00e9 dovrei aver bisogno della possibilit\u00e0 di avviare un \"cluster\" con keepalived e HAProxy attraverso una GUI, se ci mette al massimo un paio di minuti? Ma a quanto pare alla gente serve, e a me interessa, e ho qualcosa su cui lavorare. Anche se 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 reagire con un certo ritardo, e dato che il mio dipartimento si occupa di sviluppo e il software appare e scompare, ci vuole tempo per passare attraverso 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 accidentalmente un Web-GUI per Haproxy\" src=\"\/wp-content\/uploads\/2020\/08\/72427d65430c891959b68c54efd8ab4a.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>In generale, ho deciso di condividere, visto che risulta essere l'unica GUI gratuita. E chiss\u00e0 che possa servire a qualcuno? <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Aidaho12\/haproxy-wi\">Link a 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.1.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.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\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 un Web-GUI per Haproxy | ProHoster","description":"Il mondo moderno degli amministratori di sistema ci ha viziato con splendide interfacce web, che a volte non abbiamo voglia di installare software che non abbia questa tanto desiderata \"GUI\" (sento gi\u00e0 pioventi critiche da parte degli puristi della riga di comando), insomma, non posso usare solo da 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}]}}