AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1163371
Accepted
JohnLBevan
JohnLBevan
Asked: 2024-08-02 00:32:34 +0800 CST2024-08-02 00:32:34 +0800 CST 2024-08-02 00:32:34 +0800 CST

Gateway de aplicativo do Azure: a integridade do back-end retorna HTTP 463, os usuários obtêm um loop circular de 301s

  • 772

Eu tenho um gateway de aplicativo para o qual minhas configurações de back-end são configuradas com sondagens de integridade, permitindo o status 200-499 como íntegro (incluí os 4xxcódigos da série, pois algumas soluções têm raízes de site que retornam 404, embora tenham conteúdo em outros caminhos, e alguns sites retornam um 403 automaticamente para um usuário não autorizado / Não quero que isso afete o status de integridade do back-end / Queria que minha solução fosse o mais genérica possível para que eu pudesse reutilizar as mesmas configurações em uma série de sites para minimizar o esforço ao integrar novos sites ).

No entanto, minha integridade de back-end mostra um dos meus sites retornando HTTP 463códigos de status (portanto, o back-end ainda está íntegro, mas essa resposta é inesperada). Além disso, se eu navegar até o URI do ouvinte associado a esse back-end, ficarei preso em um redirecionamento 301 de/para o mesmo site. Eu tenho redirecionamentos configurados:

  • O backend redireciona de /para /login.aspxpara um usuário não autenticado. Isso usa caminhos relativos, portanto, não é afetado pelo nome do host do AppGW ou pelo protocolo front-end versus back-end.
  • O AppGW possui ouvintes HTTP e HTTPS, a regra HTTP redireciona para o ouvinte HTTPS, enquanto a regra HTTPS está associada ao backend.

No entanto, mesmo se eu remover esses recursos, obtenho o mesmo comportamento.

Outros sites no mesmo AppGW são configurados da mesma maneira, mas não apresentam esse problema.

Eu tenho um script do PowerShell para testar redirecionamentos: Get-HttpUrlRedirects . Se assumirmos que a configuração foi para example.com, a saída ESPERADA da execução Get-HttpUrlRedirects -Url 'http://example.com' -Verboseseria:

VERBOSE: Redirecting to [https://example.com/]
VERBOSE: Redirecting to [https://example.com/login.aspx]
Url                                             StatusCode
---                                             ----------
http://example.com/                                    301
https://example.com/                                   302
https://example/login.aspx                             200

Embora a saída REAL seja:


VERBOSE: Redirecting to [https://example.com/]
VERBOSE: Redirecting to [https://example.com/]
VERBOSE: Redirecting to [https://example.com/]
VERBOSE: Redirecting to [https://example.com/]
Url                                             StatusCode
---                                             ----------
http://example.com/                                    301
https://example.com/                                   301
VERBOSE: Redirecting to [https://example.com/]
https://example.com/                                   301
VERBOSE: Redirecting to [https://example.com/]
https://example.com/                                   301
VERBOSE: Redirecting to [https://example.com/]

# etc - I hit ctrl + C to terminate when I see this loop occurring
azure
  • 1 1 respostas
  • 10 Views

1 respostas

  • Voted
  1. Best Answer
    JohnLBevan
    2024-08-02T00:43:43+08:002024-08-02T00:43:43+08:00

    O problema aqui foi nosso firewall bloqueando o tráfego entre o AppGW e o back-end relacionado. Adicionar uma regra de permissão resolveu o problema.

    Detalhe

    Nosso gateway de aplicativo é configurado em uma sub-rede que possui uma tabela de rotas associada, 0.0.0.0/0direcionada para next hop: internet, enquanto os vários intervalos de IP privados (por exemplo, 172.16.0.0/12) têm seu tipo de próximo salto virtual appliancee o destino como IP interno do nosso Firewall. Ou seja, isso garante que o tráfego que atinge o IP público do AppGW tenha respostas retornadas do mesmo IP público (em vez das respostas saírem através do IP público do FW), mas todo o tráfego interno passa pelo nosso firewall antes de atingir os servidores backend.

    O firewall tinha uma regra que restringia o acesso do CIDR do nosso AppGW ao CIDR da VNet do backend (ou melhor, não tinha uma regra permitindo isso; e nega por padrão).

    Ao verificar os logs do firewall, caso esse fosse o problema, nada apareceu (ou seja, o seguinte Kusto retornou apenas back-ends que estavam funcionando, sem mostrar um Action=Denyback-end com falha AZFWNetworkLog | where ipv4_is_in_range(SourceIp, '172.12.0.0/28') /* CIDR for our AppGW Subnet */ and DestinationPort == 80 | distinct DestinationIp:), então parecia que o tráfego não estava alcançando o firewall , pois não estava sendo registrado. Como os códigos HTTP 463e 301estavam sendo retornados, isso implicava que algo estava respondendo, em vez de algo ser bloqueado (como poderíamos esperar se víssemos um 503); então demorou um pouco para descobrir, pois a evidência parecia estar apontando para longe do FW.

    • 0

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve