O que significa erro de Protocolo ERR SPDY na nginx?
usamos ngnix versão 1.8.0. O erro não é estável (difícil de replicar), e o log de erro Ngnix não tem esse erro.
Como nos aconselharia a apanhar e resolver isto?11 answers
Eu tive o mesmo problema, verifique se você tem espaço suficiente na partição Nginx/HDD, nós adicionamos alguns e funcionou para nós.
TL; DR: Se estiver a cachar activos, então verifique o espaço de transmissão no seu servidor nginx.
O Nosso Cenário
Não tenho a certeza onde publicar a minha resposta a isto, uma vez que pode ser um caso de aresta ao obter o {[[0]} no Chrome (e o erro equivalente de "falha na carga do recurso" no Firefox). Mas este post ajudou-me a reduzir o culpado. Não eram cabeçalhos, gzip, redirecções, ou adblock/ublock.
Temos 2 aplicações web implantadas da máquina, e ambas foram ... a correr perfeitamente bem. Recentemente, implantamos uma das aplicações com mudanças nos ativos do cache. Assim que a missão terminou, recebemos imediatamente oERR_SPDY_PROTOCOL_ERROR
do Chrome. Curiosamente, estava a receber um {[[2]} e se navegasse directamente para o activo, o Chrome renderia o activo. No entanto, carregar o activo numa página causaria o seu fracasso.
Curiosamente, a outra aplicação web estava perfeitamente bem. Investigando os internos da rede no Chrome, descobrimos o o servidor estava a fechar a ligação. Depois de várias horas, determinámos que era porque o nosso servidor nginx tinha esgotado o espaço de transmissão. Não sei por que isso faria com que os ativos carregassem corretamente quando você navega diretamente para eles, mas falhar quando você carrega uma página, mas limpar o espaço imediatamente corrigiu o problema.
Add_ header X-Frame-Options: deny;
O cromado actual vai vomitar com ssl+http2 por alguma razão. Outros cabeçalhos de quadros X não parecem ser um problema.
A nossa situação / solução: usamos um Balancer de Aplicação AWS ligado aEC2 instâncias. Um dos scripts que executamos com o EC2 proxies pedidos do navegador cliente. Recentemente, atualizamos o script - sem alterações relevantes-e notamos que os pedidos Chrome e Safari para o script proxy começaram a falhar. Cromo mostrou o erro ERR_SPDY_PROTOCOL_ERROR
e, quando entrámos nele, pudemos ver que este pedido estava a usar o HTTP / 2. Os pedidos do Firefox continuaram a funcionar bem.
A nossa solução: desligámos o suporte HTTP / 2 no ALB. Imediatamente resolveu o problema.
Comando AWS CLI:
aws elbv2 modify-load-balancer-attributes --load-balancer-arn <your_load_balancer_arn> --attributes Key=routing.http2.enabled,Value=false
:
). A única resposta para isto é uma dica de depuração, verificar os eventos net-internals do Chrome ao carregar a página quebrada: chrome:/ / net-internals / #events
Para mim, sabia que era uma questão de cabeçalho quando vi esta linha.
t=65422 [st=53] HTTP_TRANSACTION_READ_HEADERS [dt=4]
--> net_error = -337 (ERR_SPDY_PROTOCOL_ERROR)
Esta é uma questão conhecida que existe entre navegadores de crómio e certos programas antivírus como AVG e Avast, especialmente quando se utiliza uma ligação SSL. Não pode ser resolvido no fim do utilizador. Cabe aos desenvolvedores do site impedir que este problema aconteça.
A documentação para os programadores da web está aqui: http://dev.chromium.org/spdy/spdy-best-practices
Aqui estão algumas dicas úteis para desenvolvedores que não são especificamente mencionados nesse artigo:
- Tenha muito cuidado ao usar cabeçalhos e redirectos, especialmente 301 e 302's
- Mantenha todas as suas inclusões dentro ou sob o mesmo diretório que o seu acesso de nome de domínio, não acima do diretório no servidor. O Antivírus não pode aceder-lhes lá. Para proteger seus arquivos de inclusão, crie um .ficheiro htaccess no directório includes e basta escrever uma linha: NY from all
- activar a compressão Gzip. Se você usar cPanel, isso pode ser feito em seu site Configuração da optimização. Fica com o teu .ficheiro htaccess simples. Mudar as saídas do servidor para criar diferentes extensões de ficheiros e redireccionar os clientes do Utilizador irá criar conflitos desnecessários.
Pela minha experiência, este problema só parece ocorrer quando se usam sessões para armazenar e passar dados. Cookies, Get E Post parecem não ser afetados.
Espero que isto ajude.Resolvi isto desinstalando o Chrome, apagando o meu perfil de utilizador (no mac, apaga o conteúdo de ~/Library/Application Support/Google/Chrome
) e reinstalando-o.
Vi este erro recentemente após uma actualização do servidor.
Estava a vê-lo para todos os utilizadores no cromado, mas apenas intermitentemente.Consegui resolvê-lo para todos os utilizadores, fazendo-os usar a função de actualização 'Cache vazio e recarga' do Chrome para o site. (F12 para as ferramentas cromadas, carregue com o botão direito no botão Actualizar)
Suspeito que esteja relacionado com algo em cache sobre os certificados SSL a serem usados.Para mim, foi a configuração Nginx que não permitiu o método das opções. Eu tinha whitelisted GET|PUT|POST / DELETE somente, então quando o Chrome tentou enviar o método de opções, Deus sabe por que**, o erro foi reproduzido.
Abra o Firefox e repita o pedido, em seguida, olhe para o inspetor de rede para verificar se quaisquer opções pedidos estão sendo enviados.
** provavelmente para verificar se existem opções X-Frame ou verificação dos OCS.
Verifique a localização da sua localização da 'cache' do 'proxy' - verifique se existe, tem espaço, e que as permissões e o dono permitem que o processo nginx
escreva para a localização.
Por exemplo nginx.conf (excerto)
proxy_cache_path /proxy_cache levels=1:2 keys_zone=danger_zone:10m inactive=60m;
... em seguida, verifique se a localização /proxy_cache
é propriedade e pode ser escrita por nginx
.