{"id":91705,"date":"2020-08-17T07:42:09","date_gmt":"2020-08-17T05:42:09","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/kak-sluchajno-prodolzhit-pisat-web-gui-dlya-haproxy"},"modified":"2020-08-17T07:42:09","modified_gmt":"2020-08-17T05:42:09","slug":"kak-sluchajno-prodolzhit-pisat-web-gui-dlya-haproxy","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/kak-sluchajno-prodolzhit-pisat-web-gui-dlya-haproxy","title":{"rendered":"Como acidentalmente continuar escrevendo um Web-GUI para Haproxy","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>J\u00e1 se passaram dois anos e 4 dias desde que escrevi <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/419865\/\">Como escrever acidentalmente uma Web-GUI para Haproxy<\/a><\/noindex>, e o carro j\u00e1 n\u00e3o est\u00e1 mais l\u00e1 \u2014 tudo muda e se desenvolve, e o HAProxy-WI tenta acompanhar essa tend\u00eancia. Ao longo de dois anos, muito trabalho foi realizado, e \u00e9 sobre as principais mudan\u00e7as que quero falar agora, ent\u00e3o: bem-vindo ao 'post'.<\/p>\n<p><img decoding=\"async\" alt=\"Como acidentalmente continuar escrevendo um Web-GUI para Haproxy\" src=\"\/wp-content\/uploads\/2020\/08\/bac46568401fe775336dd8d76129d260.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n1. Vou come\u00e7ar pelo que salta \u00e0 vista, e isso, sem d\u00favida, \u00e9 o design. Na minha opini\u00e3o, tudo se tornou mais l\u00f3gico, compreens\u00edvel e conveniente, e claro, mais agrad\u00e1vel esteticamente :). As se\u00e7\u00f5es do menu tornaram-se mais estruturadas.<\/p>\n<p>2. Apareceram p\u00e1ginas para cada servidor, o que \u00e9 conveniente para entender o funcionamento de servi\u00e7os espec\u00edficos. Ele se apresenta assim:<\/p>\n<p><img decoding=\"async\" alt=\"Como acidentalmente continuar escrevendo um Web-GUI para Haproxy\" src=\"\/wp-content\/uploads\/2020\/08\/b6abcbb5eb36ca58764958d921d786e0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n3. Agora h\u00e1 suporte para Nginx! Infelizmente, n\u00e3o foi poss\u00edvel integrar como com o HAProxy devido a op\u00e7\u00f5es mais limitadas para apresentar suas estat\u00edsticas na vers\u00e3o gratuita do Nginx, mas as principais fun\u00e7\u00f5es (edi\u00e7\u00e3o, compara\u00e7\u00e3o e versionamento de configura\u00e7\u00f5es, funcionamento e instala\u00e7\u00e3o de servi\u00e7os) ainda est\u00e3o dispon\u00edveis para o HAProxy-WI para Nginx.<\/p>\n<p><img decoding=\"async\" alt=\"Como acidentalmente continuar escrevendo um Web-GUI para Haproxy\" src=\"\/wp-content\/uploads\/2020\/08\/098596cebbc62392264349d41f3e3f8d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n4. \u00c9 poss\u00edvel implementar uma monitoriza\u00e7\u00e3o completa para HAProxy e Nginx! Ela consiste em: Grafana, Prometheus e exportadores para Nginx e HAProxy. Com apenas alguns cliques, bem-vindo aos dashboards!<\/p>\n<p>5. Nos coment\u00e1rios da postagem anterior, algumas pessoas mencionaram que usar scripts bash para instalar servi\u00e7os \u00e9 como atirar no pr\u00f3prio p\u00e9. Eu concordo com eles, e por isso 95% de todas as instala\u00e7\u00f5es agora ocorrem atrav\u00e9s do Ansible. Realmente \u00e9 conveniente e tamb\u00e9m mais seguro. Um ponto positivo ao redor!<\/p>\n<p>6. Como n\u00e3o reinventar a roda dentro de uma roda? Uma mini roda, por assim dizer... Um pequeno triciclo, talvez: a capacidade de monitorar portas em busca de disponibilidade, resposta HTTP e verifica\u00e7\u00e3o de resposta por palavra-chave. Sim, n\u00e3o muitas fun\u00e7\u00f5es, mas \u00e9 f\u00e1cil de instalar e administrar \ud83d\ude42<\/p>\n<p><img decoding=\"async\" alt=\"Como acidentalmente continuar escrevendo um Web-GUI para Haproxy\" src=\"\/wp-content\/uploads\/2020\/08\/0da9875f57402abb4e6b21ee26d4a241.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n7. Um trabalho muito legal com a API Runtime do HAProxy. Por que muito legal? Isso s\u00f3 temos n\u00f3s e... talvez mais ningu\u00e9m. \u00c9 claro que soa um pouco pretensioso, mas eu realmente gosto de como isso funciona. Como, por exemplo, funciona com as tabelas stick-table que s\u00e3o ao mesmo tempo adoradas e odiadas:<\/p>\n<p><img decoding=\"async\" alt=\"Como acidentalmente continuar escrevendo um Web-GUI para Haproxy\" src=\"\/wp-content\/uploads\/2020\/08\/b1fd8c6e3fab0710c9f68cb050534473.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAcho que isso \u00e9 tudo de mais importante. Houve muito trabalho relacionado a grupos, fun\u00e7\u00f5es, seguran\u00e7a e identifica\u00e7\u00e3o de bugs... Ah, e voc\u00ea sabe o que mais? Agora j\u00e1 <noindex><a rel=\"nofollow\" href=\"https:\/\/haproxy-wi.org\">existe um site<\/a><\/noindex>, onde h\u00e1 uma demonstra\u00e7\u00e3o do HAProxy-WI e voc\u00ea pode experimentar tudo, al\u00e9m de um changelog. Apenas por favor, evite o \"efeito Habra\" pois meu servidor para o site e a demonstra\u00e7\u00e3o \u00e9 fraco. E o link para <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Aidaho12\/haproxy-wi\">GitHub<\/a><\/noindex><br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/515116\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u043e\u0448\u043b\u043e \u0434\u0432\u0430 \u0433\u043e\u0434\u0430 \u0438 4 \u0434\u043d\u044f, \u043a\u0430\u043a \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \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, \u0430 \u0432\u043e\u0437 \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e \u043d\u0435 \u0442\u0430\u043c \u2014 \u0432\u0441\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0438 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438 HAProxy-WI \u0441\u0442\u0430\u0440\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0439 \u0442\u0435\u043d\u0434\u0435\u043d\u0446\u0438\u0438. \u0417\u0430 \u0434\u0432\u0430 \u0433\u043e\u0434\u0430 \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b, \u043e\u0431 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445 \u044f \u0438 \u0445\u043e\u0447\u0443 \u0441\u0435\u0439\u0447\u0430\u0441 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0442\u0430\u043a \u0447\u0442\u043e: \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u00ab\u043a\u0430\u0442\u00bb. 1. \u041d\u0430\u0447\u043d\u0443 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":91706,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-91705","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.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u043e\u0448\u043b\u043e \u0434\u0432\u0430 \u0433\u043e\u0434\u0430 \u0438 4 \u0434\u043d\u044f, \u043a\u0430\u043a \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \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, \u0430 \u0432\u043e\u0437 \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e \u043d\u0435 \u0442\u0430\u043c \u2014 \u0432\u0441\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0438 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438.\" \/>\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\/pt\/blog\/administrirovanie\/kak-sluchajno-prodolzhit-pisat-web-gui-dlya-haproxy\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u043f\u0438\u0441\u0430\u0442\u044c Web-GUI \u0434\u043b\u044f Haproxy | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u043e\u0448\u043b\u043e \u0434\u0432\u0430 \u0433\u043e\u0434\u0430 \u0438 4 \u0434\u043d\u044f, \u043a\u0430\u043a \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \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, \u0430 \u0432\u043e\u0437 \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e \u043d\u0435 \u0442\u0430\u043c \u2014 \u0432\u0441\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0438 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/kak-sluchajno-prodolzhit-pisat-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:09+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-17T05:42:09+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\udd47Como continuar escrevendo acidentalmente uma Web-GUI para Haproxy | ProHoster","description":"J\u00e1 se passaram dois anos e 4 dias desde que escrevi Como escrever acidentalmente uma Web-GUI para Haproxy, e a realidade j\u00e1 \u00e9 bem diferente \u2014 tudo muda e se desenvolve.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/kak-sluchajno-prodolzhit-pisat-web-gui-dlya-haproxy","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u043f\u0438\u0441\u0430\u0442\u044c Web-GUI \u0434\u043b\u044f Haproxy | ProHoster","og:description":"\u041f\u0440\u043e\u0448\u043b\u043e \u0434\u0432\u0430 \u0433\u043e\u0434\u0430 \u0438 4 \u0434\u043d\u044f, \u043a\u0430\u043a \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \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, \u0430 \u0432\u043e\u0437 \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e \u043d\u0435 \u0442\u0430\u043c \u2014 \u0432\u0441\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0438 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438.","og:url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/kak-sluchajno-prodolzhit-pisat-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:09+00:00","article:modified_time":"2020-08-17T05:42:09+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"91705","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:23","updated":"2022-10-04 17:03:41","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/91705","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=91705"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/91705\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/91706"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=91705"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=91705"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=91705"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}