A implantação da configuração do Dispatcher falha devido à falta de configuração do ServerAlias ou do X-Vhost

As implantações de configuração do Dispatcher no Cloud Manager falham na verificação de código ou na fase TestCacheInvalidation, mesmo quando a validação local não relata problemas. As falhas ocorrem quando nenhum vhost habilitado corresponde aos nomes de host que o Cloud Manager usa para seus testes internos ou quando o vhost correspondente não define um cabeçalho X-Vhost, portanto, as solicitações se encaixam no vhost catch-all. Links simbólicos default.vhost ausentes, valores ServerAlias ausentes e regras de regravação que bloqueiam invalidate.cache produzem o mesmo resultado. Garantir que pelo menos um vhost habilitado trate 127.0.0.1, localhost, *.local e os domínios de nuvem e defina um cabeçalho X-Vhost resolve a falha.

Descrição description

Problema: falha na implantação do Dispatcher na Verificação de código ou TestCacheInvalidation com um erro “catch-all” do X-Vhost

Descrição

Os pipelines do Dispatcher do Cloud Manager falham na Verificação de Código ou TestCacheInvalidation apesar do relatório do validador do Dispatcher Nenhum problema encontrado. Os logs mostram o êxito do validador, seguido de uma falha como Expected header X-Vhost to be existing and not: catch-all, got: catch-all ou invalidação que retorna HTTP 403. Isso acontece quando nenhum vhost ativado corresponde aos nomes de host de invalidação do dispatcher ou não define um cabeçalho X-Vhost, deixando os testes do Cloud Manager para se enquadrarem no vhost catch-all. Falhas adicionais ocorrem quando o link simbólico default.vhost está ausente, os valores ServerAlias necessários estão ausentes ou o bloco de regras de redirecionamento/regravação invalidate.cache.

Ambiente:

  • Adobe Experience Manager as a Cloud Service (AEMaaCS)
  • AEM Managed Services
  • Cloud Manager (Verificação de código e pipelines de validação no nível da Web)
  • Dispatcher

Problema/sintomas:

  • Mensagem de falha de teste do Dispatcher: Test fails. Expected header X-Vhost to be existing and not: catch-all, got: catch-all
  • O pipeline falha na Verificação de Código, embora o validador do dispatcher imprima Nenhum problema encontrado.
  • O teste de invalidação do Dispatcher retorna Expected 200 but got 403 para um POST para invalidate.cache.
  • Os logs do Cloud Manager mostram o código de erro BUILD_WEB_TIER_VALIDATE_WITH_DISPATCHER_TEST_FAILURE ou BUILD_WEB_TIER_VALIDATE_STATIC_TEST_FAILURE.

Causa raiz:

O Cloud Manager executa testes internos do Dispatcher que exigem pelo menos um vhost habilitado para corresponder às solicitações provenientes de 127.0.0.1, localhost, *.local, *.adobeaemcloud.com e *.adobeaemcloud.net. Esses testes também devem retornar um cabeçalho X-Vhost. Quando esses nomes de host não são correspondidos por nenhum vhost habilitado, ou o vhost correspondente não define X-Vhost, o Cloud Manager trata a resposta como pega-tudo, fazendo com que TestCacheInvalidation e outros testes falhem. A mesma falha ocorre quando o link simbólico default.vhost está ausente, as regras de regravação personalizadas bloqueiam a invalidação ou os artefatos estão ausentes durante as etapas de cópia.

Como confirmar

  1. Navegue até Cloud Manager > Pipelines, selecione o pipeline com falha e escolha Exibir Execução. Baixar build_dispatcher_validation.log e dispatcher_backend_mock.log.
  2. Pesquise os logs de TestCacheInvalidation ou X-Vhost. Falhas mostram mensagens como Expected header X-Vhost ... got catch-all.
  3. Se nenhuma falha for exibida, o pipeline pode estar reutilizando uma build anterior. Execute uma confirmação git fictícia para forçar uma recriação e verificar novamente.

Resolução resolution

  1. Verifique se os valores de ServerAlias necessários existem. Abra conf.d/available_vhosts/*.vhost para domínios ativos e confirme se pelo menos um vhost habilitado inclui explicitamente todos esses aliases:

    code language-none
    ServerAlias "127.0.0.1" "localhost" "*.local" "*.adobeaemcloud.com" "*.adobeaemcloud.net"
    

Não é garantido que um glob * sozinho funcione. Se os aliases estiverem ausentes, adicione-os e implante novamente.
​2. Confirme se o vhost está ativado. Procure em conf.d/enabled_vhosts/ um link simbólico apontando para um vhost com as entradas ServerAlias necessárias. Por exemplo: default.vhost -> ../available_vhosts/default.vhost. Se o link simbólico estiver ausente, adicione-o e envie a confirmação.
​3. Defina o cabeçalho X-Vhost. No vhost correspondente, adicione:

"
Cabeçalho adicionar X-Vhost “publicar”
"

As solicitações de teste retornam um valor X-Vhost diferente de catch-all. Confirme se nenhuma regra de regravação desmonta os cabeçalhos de resposta.
​4. Verifique as regras de regravação que bloqueiam invalidate.cache. Procure regras que rejeitam o cliente de teste do Cloud Manager. Por exemplo: uma regra correspondente ao agente de usuário Go-http-client que retorna um valor 403:

"
RewriteCond %{HTTP_USER_AGENT} Go-http-client.$
RewriteRule.
- [ R=403,L]
"

Remova ou ignore a regra incorreta para que a invalidação retorne HTTP 200. Se necessário, desative temporariamente substituições e reimplantações suspeitas.
​5. Valide a configuração localmente:

"
./bin/validate.sh dispatcher/src
"

Confirme se a saída mostra Nenhum problema encontrado e Sintaxe OK. Corrija quaisquer erros de sintaxe local antes da reimplantação.
​6. Confirme as alterações e execute novamente o pipeline do Dispatcher. Confirme a Verificação de Código e TestCacheInvalidation aprovação.

Validação

  1. Confirme se o pipeline do Cloud Manager mais recente passou na Verificação de Código sem TestCacheInvalidation erros.
  2. Confirmar a invalidação do dispatcher por meio dos logs não mostra nenhuma resposta HTTP 403 para invalidate.cache.

Leitura relacionada

recommendation-more-help
experience-cloud-kcs-help-kbarticles