{"id":2639,"date":"2017-08-30T07:44:44","date_gmt":"2017-08-30T10:44:44","guid":{"rendered":"https:\/\/devkico.itexto.com.br\/?p=2639"},"modified":"2017-08-30T07:44:50","modified_gmt":"2017-08-30T10:44:50","slug":"uma-instancia-do-tomcat-atendendo-dois-dominios-configurando-virtual-hosts","status":"publish","type":"post","link":"https:\/\/devkico.itexto.com.br\/?p=2639","title":{"rendered":"Uma inst\u00e2ncia do Tomcat atendendo dois dom\u00ednios? Configurando Virtual Hosts"},"content":{"rendered":"<p>Imagine a seguinte situa\u00e7\u00e3o: voc\u00ea tem um \u00fanico servidor e duas aplica\u00e7\u00f5es distintas que ser\u00e3o hospedadas na mesma m\u00e1quina. Cada uma destas aplica\u00e7\u00f5es tem, por sua vez, seu pr\u00f3prio dom\u00ednio (www.aplicacaoquente.com.br (aplica\u00e7\u00e3o A) e www.aplicacaofervente.com.br (aplica\u00e7\u00e3o B), por exemplo). Como voc\u00ea resolve esta quest\u00e3o usando apenas o Tomcat?<\/p>\n<p>Se voc\u00ea tiver o servidor <a href=\"https:\/\/httpd.apache.org\/\">Apache<\/a> instalado, \u00e9 poss\u00edvel us\u00e1-lo como front-end do seu servidor e, configurando o recurso do <a href=\"https:\/\/httpd.apache.org\/docs\/2.4\/howto\/reverse_proxy.html\">proxy reverso<\/a>, simplesmente fazer o direcionamento das requisi\u00e7\u00f5es vindas dos dois dom\u00ednios acima para as aplica\u00e7\u00f5es A ou B. Mas e quando voc\u00ea tem apenas o Tomcat? Razoavelmente simples: voc\u00ea usa o recurso dos <strong>hosts virtuais <\/strong>(virtual hosts daqui pra frente).<\/p>\n<p>(A <a href=\"http:\/\/tomcat.apache.org\/tomcat-8.5-doc\/virtual-hosting-howto.html\">documenta\u00e7\u00e3o oficial do Tomcat sobre este tema<\/a> \u00e9 muito ruim, e isto me motivou a escrever este post.)<\/p>\n<h3>O que \u00e9 um host virtual?<\/h3>\n<p>Um host virtual representa o direcionamento que o Tomcat far\u00e1 quando receber solicita\u00e7\u00f5es para um dado dom\u00ednio. No exemplo deste post, temos os dois dom\u00ednios, um para cada uma das aplica\u00e7\u00f5es. Vamos ver aqui agora como realizar esta configura\u00e7\u00e3o na vers\u00e3o 8.0 e 8.5 do Tomcat.<\/p>\n<h3>Como configurar os virtual hosts<\/h3>\n<p>Antes de iniciar, uma simples conven\u00e7\u00e3o. CATALINA_HOME representa o diret\u00f3rio no qual o Apache Tomcat encontra-se instalado em seu servidor.<\/p>\n<p>O primeiro passo consiste em editar o arquivo <strong>CATALINA_HOME\/conf\/server.xml<\/strong>. Busque pela tag <strong>&lt;Engine&gt;<\/strong> cujo atributo&nbsp;<strong>name<\/strong> seja igual a &#8220;Catalina&#8221;, tal como no exemplo a seguir:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n\n&lt;Engine name=\"Catalina\" defaultHost=\"localhost\"&gt;\n\n&lt;!--For clustering, please take a look at documentation at:\n\n<\/pre>\n<p>\u00c9 no interior desta tag que iremos inserir as configura\u00e7\u00f5es de nossos virtual hosts. A configura\u00e7\u00e3o \u00e9 bastante simples. Em nosso exemplo, basta incluir duas tags&nbsp;<strong>&lt;Host&gt;<\/strong>, tal como no exemplo a seguir:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n\n&lt;Host name=\"aplicacaofervente.com.br\" appBase=\"webapps\" unpackWARs=\"true\" autoDeploy=\"true\"&gt;\n&lt;Alias&gt;www.aplicacaofervente.com.br&lt;\/Alias&gt;\n\n&lt;Valve className=\"org.apache.catalina.valves.AccessLogValve\"\ndirectory=\"logs\" &nbsp; prefix=\"aplicacaofervente_access_log\" suffix=\".txt\"\npattern=\"%h %l %u %t %r %s %b\" \/&gt;\n&lt;\/Host&gt;\n\n&lt;Host name=\"aplicacaoquente.com.br\" appBase=\"webapps2\" unpackWARs=\"true\" autoDeploy=\"true\"&gt;\n&lt;Alias&gt;www.aplicacaoquente.com.br&lt;\/Alias&gt;\n\n&lt;Valve className=\"org.apache.catalina.valves.AccessLogValve\"\ndirectory=\"logs\" prefix=\"aplicacaoquente_access_log\" suffix=\".txt\"\npattern=\"%h %l %u %t %r %s %b\" \/&gt;\n&lt;\/Host&gt;\n\n<\/pre>\n<p>Muita aten\u00e7\u00e3o a alguns atributos muito importantes presentes na tag&nbsp;<strong>&lt;Host&gt;:<\/strong><\/p>\n<ul>\n<li><strong>appBase<\/strong> &#8211; define o diret\u00f3rio &#8220;webapps&#8221; daquele host. No caso de virtual hosts, \u00e9 uma boa ideia voc\u00ea ter um diret\u00f3rio &#8220;webapps&#8221; por host. Em nosso exemplo, criei dois diret\u00f3rios: CATALINA_HOME\/webapps e CATALINA_HOME\/webapps2<\/li>\n<li><strong>name<\/strong> &#8211; identifica o dom\u00ednio para o qual ser\u00e3o direcionadas as requisi\u00e7\u00f5es. Observe que defini o dom\u00ednio sem o &#8220;www&#8221; na frente. Isto por que no interior da tag&nbsp;<strong>&lt;Host&gt;<\/strong> podemos incluir aliases, observe a tag&nbsp;<strong>&lt;Alias&gt;<\/strong>: ela inclui o prefixo no nome do dom\u0144io, o &#8220;www&#8221;.<\/li>\n<\/ul>\n<p>A tag&nbsp;<strong>&lt;Valve&gt;<\/strong> neste caso \u00e9 usada para configurar uma <a href=\"http:\/\/tomcat.apache.org\/tomcat-8.5-doc\/config\/valve.html\">v\u00e1lvula do Tomcat<\/a> (um recurso poderos\u00edssimo e muito pouco conhecido pelos desenvolvedores) respons\u00e1vel por registrar as requisi\u00e7\u00f5es que chegam ao servidor em um arquivo de log. Observe que criei um arquivo de log por dom\u00ednio.<\/p>\n<h5>Muita aten\u00e7\u00e3o em rela\u00e7\u00e3o \u00e0 pasta appBase<\/h5>\n<p>\u00c9 poss\u00edvel ter dois virtual hosts apontando para a mesma pasta appBase. Entretanto, em diversas situa\u00e7\u00f5es voc\u00ea observar\u00e1 que as aplica\u00e7\u00f5es, durante sua inicializa\u00e7\u00e3o, entram em &#8220;loop de boot&#8221;, ou seja, s\u00e3o iniciadas e reiniciadas infinitas vezes.<\/p>\n<p>N\u00e3o sei ao certo o que causa este problema, mas sei como solucion\u00e1-lo: uma pasta appBase por host. Simples assim.<\/p>\n<h5>Alguns links \u00fateis<\/h5>\n<p>\u00c9 interessante que voc\u00ea conhe\u00e7a os atributos que podem ser inseridos nas tags &lt;Engine&gt; e &lt;Host&gt;. Sendo assim, recomendo que leia sobre a primeira tag <a href=\"http:\/\/tomcat.apache.org\/tomcat-8.5-doc\/config\/engine.html\">aqui<\/a> e sobre a segunda <a href=\"http:\/\/tomcat.apache.org\/tomcat-8.5-doc\/config\/host.html\">aqui<\/a>.<\/p>\n<h3>Definindo o host padr\u00e3o<\/h3>\n<p>Com isto nosso servidor est\u00e1 praticamente pronto. O mesmo endere\u00e7o IP ir\u00e1 atender aos dois dom\u00ednios. Mas e se algu\u00e9m tentar acessar o servidor diretamente pelo seu IP? Neste caso definimos qual o host padr\u00e3o na tag&nbsp;<strong>&lt;Engine&gt;<\/strong>, tal como exposto no exemplo a seguir:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n\n&lt;Engine name=\"Catalina\" defaultHost=\"localhost\"&gt;\n\n<\/pre>\n<p>Neste exemplo criei uma tag&nbsp;<strong>&lt;Host&gt;<\/strong> cujo nome \u00e9 &#8220;localhost&#8221; (\u00e9 inclusive o host padr\u00e3o da configura\u00e7\u00e3o limpa do Tomcat).<\/p>\n<h3><strong>Sobre o contexto das aplica\u00e7\u00f5es em um dom\u00ednio<\/strong><\/h3>\n<p>Se voc\u00ea j\u00e1 usou o Tomcat sabe que \u00e9 poss\u00edvel ter mais de uma aplica\u00e7\u00e3o instalada na pasta CATALINA_HOME\/webapps. Voltando ao nosso exemplo, imagine que para o dom\u00ednio&nbsp;<em>aplicacaofervente.com.br<\/em> tiv\u00e9ssemos os seguintes arquivos WAR na sua pasta webapps:<\/p>\n<ul>\n<li>ROOT.war<\/li>\n<li>administrativo.war<\/li>\n<\/ul>\n<p>A aplica\u00e7\u00e3o padr\u00e3o do dom\u00ednio seria o ROOT.war. J\u00e1 se voc\u00ea quiser aplicar o administrativo, teria de usar o endere\u00e7o http:\/\/www.aplicacaofervente.com.br\/administrativo<\/p>\n<h3>Melhorias no consumo de mem\u00f3ria<\/h3>\n<p>Talvez as aplica\u00e7\u00f5es que voc\u00ea hospeda em seus virtual hosts tenham bibliotecas em comum.&nbsp;<strong>Apenas se voc\u00ea tiver certeza absoluta de que compartilham exatamente as mesmas vers\u00f5es destas bibliotecas<\/strong>, considere a configura\u00e7\u00e3o de uma pasta compartilhada de libs. Recomendo a leitura <a href=\"http:\/\/tomcat.apache.org\/tomcat-8.5-doc\/class-loader-howto.html\">desta p\u00e1gina<\/a> na documenta\u00e7\u00e3o oficial do Tomcat sobre class loading.<\/p>\n<h2>Concluindo<\/h2>\n<p>Reinicie o seu Tomcat e fa\u00e7a testes enviando requisi\u00e7\u00f5es para os dois dom\u00ednios que apontam para o mesmo IP e veja o resultado. Na sequ\u00eancia, acesse o servidor diretamente por seu IP e ver\u00e1 ser retornada a aplica\u00e7\u00e3o padr\u00e3o definida na tag&nbsp;<strong>&lt;Engine&gt;<\/strong>.<\/p>\n<p>O Tomcat \u00e9 cheio de recursos muito interessantes que os desenvolvedores desconhecem. Em um futuro pr\u00f3ximo talvez escreva mais dicas sobre estes assuntos (dica: leia sobre as v\u00e1lvulas).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Como configurar o Tomcat para atender dois dom\u00ednios distintos em um mesmo servidor.<\/p>\n","protected":false},"author":1,"featured_media":650,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[74],"tags":[],"class_list":["post-2639","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-infra"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Uma inst\u00e2ncia do Tomcat atendendo dois dom\u00ednios? Configurando Virtual Hosts - \/dev\/Kico<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/devkico.itexto.com.br\/?p=2639\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Uma inst\u00e2ncia do Tomcat atendendo dois dom\u00ednios? Configurando Virtual Hosts - \/dev\/Kico\" \/>\n<meta property=\"og:description\" content=\"Como configurar o Tomcat para atender dois dom\u00ednios distintos em um mesmo servidor.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/devkico.itexto.com.br\/?p=2639\" \/>\n<meta property=\"og:site_name\" content=\"\/dev\/Kico\" \/>\n<meta property=\"article:published_time\" content=\"2017-08-30T10:44:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-08-30T10:44:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/03\/tomcat.gif\" \/>\n\t<meta property=\"og:image:width\" content=\"130\" \/>\n\t<meta property=\"og:image:height\" content=\"92\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\n<meta name=\"author\" content=\"Kico (Henrique Lobo Weissmann)\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@loboweissmann\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kico (Henrique Lobo Weissmann)\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=2639\",\"url\":\"https:\/\/devkico.itexto.com.br\/?p=2639\",\"name\":\"Uma inst\u00e2ncia do Tomcat atendendo dois dom\u00ednios? Configurando Virtual Hosts - \/dev\/Kico\",\"isPartOf\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=2639#primaryimage\"},\"image\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=2639#primaryimage\"},\"thumbnailUrl\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/03\/tomcat.gif\",\"datePublished\":\"2017-08-30T10:44:44+00:00\",\"dateModified\":\"2017-08-30T10:44:50+00:00\",\"author\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7\"},\"breadcrumb\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=2639#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/devkico.itexto.com.br\/?p=2639\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=2639#primaryimage\",\"url\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/03\/tomcat.gif\",\"contentUrl\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/03\/tomcat.gif\",\"width\":\"130\",\"height\":\"92\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=2639#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/devkico.itexto.com.br\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Uma inst\u00e2ncia do Tomcat atendendo dois dom\u00ednios? Configurando Virtual Hosts\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#website\",\"url\":\"https:\/\/devkico.itexto.com.br\/\",\"name\":\"\/dev\/Kico\",\"description\":\"Desenvolvendo software\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/devkico.itexto.com.br\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7\",\"name\":\"Kico (Henrique Lobo Weissmann)\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g\",\"caption\":\"Kico (Henrique Lobo Weissmann)\"},\"sameAs\":[\"https:\/\/x.com\/loboweissmann\"],\"url\":\"https:\/\/devkico.itexto.com.br\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Uma inst\u00e2ncia do Tomcat atendendo dois dom\u00ednios? Configurando Virtual Hosts - \/dev\/Kico","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/devkico.itexto.com.br\/?p=2639","og_locale":"pt_BR","og_type":"article","og_title":"Uma inst\u00e2ncia do Tomcat atendendo dois dom\u00ednios? Configurando Virtual Hosts - \/dev\/Kico","og_description":"Como configurar o Tomcat para atender dois dom\u00ednios distintos em um mesmo servidor.","og_url":"https:\/\/devkico.itexto.com.br\/?p=2639","og_site_name":"\/dev\/Kico","article_published_time":"2017-08-30T10:44:44+00:00","article_modified_time":"2017-08-30T10:44:50+00:00","og_image":[{"width":"130","height":"92","url":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/03\/tomcat.gif","type":"image\/gif"}],"author":"Kico (Henrique Lobo Weissmann)","twitter_card":"summary_large_image","twitter_creator":"@loboweissmann","twitter_misc":{"Escrito por":"Kico (Henrique Lobo Weissmann)","Est. tempo de leitura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/devkico.itexto.com.br\/?p=2639","url":"https:\/\/devkico.itexto.com.br\/?p=2639","name":"Uma inst\u00e2ncia do Tomcat atendendo dois dom\u00ednios? Configurando Virtual Hosts - \/dev\/Kico","isPartOf":{"@id":"https:\/\/devkico.itexto.com.br\/#website"},"primaryImageOfPage":{"@id":"https:\/\/devkico.itexto.com.br\/?p=2639#primaryimage"},"image":{"@id":"https:\/\/devkico.itexto.com.br\/?p=2639#primaryimage"},"thumbnailUrl":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/03\/tomcat.gif","datePublished":"2017-08-30T10:44:44+00:00","dateModified":"2017-08-30T10:44:50+00:00","author":{"@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7"},"breadcrumb":{"@id":"https:\/\/devkico.itexto.com.br\/?p=2639#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/devkico.itexto.com.br\/?p=2639"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/devkico.itexto.com.br\/?p=2639#primaryimage","url":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/03\/tomcat.gif","contentUrl":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/03\/tomcat.gif","width":"130","height":"92"},{"@type":"BreadcrumbList","@id":"https:\/\/devkico.itexto.com.br\/?p=2639#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/devkico.itexto.com.br\/"},{"@type":"ListItem","position":2,"name":"Uma inst\u00e2ncia do Tomcat atendendo dois dom\u00ednios? Configurando Virtual Hosts"}]},{"@type":"WebSite","@id":"https:\/\/devkico.itexto.com.br\/#website","url":"https:\/\/devkico.itexto.com.br\/","name":"\/dev\/Kico","description":"Desenvolvendo software","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/devkico.itexto.com.br\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7","name":"Kico (Henrique Lobo Weissmann)","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g","caption":"Kico (Henrique Lobo Weissmann)"},"sameAs":["https:\/\/x.com\/loboweissmann"],"url":"https:\/\/devkico.itexto.com.br\/?author=1"}]}},"jetpack_featured_media_url":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/03\/tomcat.gif","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2639"}],"collection":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2639"}],"version-history":[{"count":5,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2639\/revisions"}],"predecessor-version":[{"id":3363,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2639\/revisions\/3363"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/media\/650"}],"wp:attachment":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2639"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2639"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2639"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}