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 / 1165290
Accepted
StainlessSteelRat
StainlessSteelRat
Asked: 2024-09-16 12:11:48 +0800 CST2024-09-16 12:11:48 +0800 CST 2024-09-16 12:11:48 +0800 CST

NGINX 499-ing para apenas um ponto de extremidade que é uma conexão TCP

  • 772
Esta pergunta foi migrada do Stack Overflow porque pode ser respondida no Server Fault. Migrada há 2 dias .

Tenho uma API que escrevi que usa TCP para transmitir dados bidirecionalmente. Ela funciona perfeitamente bem na minha configuração local. Mas quando mudo para produção, ela nunca atinge o ponto final.

O servidor de produção usa ELB para balancear carga de uma instância EC2 e tudo isso é liderado pelo Cloud Flare.

No começo, eu nem conseguia ver que ele atingiu os logs do NGINX, então fui até o CloudFlare e acertei o endereço IP do EC2 diretamente. Isso fez com que a tentativa aparecesse nos logs de acesso, mas todos eles imediatamente 499 curtiram isso.

[16/set/2024:03:13:50 +0000] "POST /api/user_sync HTTP/1.1" 499 0 "-" "MYAPP/1.0.6 CFNetwork/1494.0.7 Darwin/23.6.0"

499 parece indicar que o cliente abortou a conexão, mas posso ver no meu aplicativo que a conexão com o servidor não é encerrada até que o tempo limite do lado do cliente seja atingido. Mas o 499 aparece instantaneamente nos logs de acesso do NGINX. Então é como se ele o desligasse imediatamente.

Infelizmente, não tenho muita experiência com NGINX, balanceamento de carga ou sites em geral, então qualquer ajuda seria muito apreciada.

Eu encontrei algumas postagens onde outros usuários estavam tendo problemas semelhantes, embora para eles, o 499 acontecesse para cada chamada de API, ou após um longo período de tempo. No entanto, isso acontece TODA VEZ e apenas para este endpoint específico.

ios
  • 1 1 respostas
  • 23 Views

1 respostas

  • Voted
  1. Best Answer
    StainlessSteelRat
    2024-09-18T01:12:43+08:002024-09-18T01:12:43+08:00

    Alguém mais que encontrar esta postagem!

    Tanto o ELB quanto o NGINX estavam bagunçando as coisas. O ELB espera até que uma certa quantidade de dados tenha sido enviada no fluxo antes de jogá-los fora. Mas isso não funciona para nós porque a carga útil inicial do protocolo é muito pequena (como 100 caracteres).

    Então contornamos isso.

    Aparentemente, o NGINX não é fã de codificação de transferência em blocos (acho que esse era o problema), então acabamos contornando isso também.

    Como essa API não pode ser armazenada em cache, acabamos contornando o varnish também.

    Tudo isso envolveu coisas como configurar novos grupos de segurança que encaminhavam para a porta correta quando chamados em uma URL específica que não era nossa URL principal (pense em purchase.ebay.com em vez de www.ebay.com ).

    Mais uma vez, me perdoe pela nomenclatura não técnica, pois eu realmente não sou um cara da web rs

    • 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