nginx faz o download do arquivo vazio quando solicitado na porta 80 (em vez de redirecionar para a porta 443)

2

meu servidor nginx não faz o que deveria. Todas as solicitações http: // para o servidor devem ser redirecionadas com http 301 para https: //, funcionou bem nos últimos dias, até que parou de funcionar sem nenhuma alteração.

O Nginx retorna um arquivo vazio com o tipo "application / octet-stream" e o seguinte conteúdo (legível em sublime):

0000 1204 0000 0000 0000 0300 0000 8000
0400 0000 0000 0500 ffff ff00 0004 0800
0000 0000 7fff 0000 0000 0807 0000 0000
0000 0000 0000 0000 01

Primeiro, tentei remover a linha

default_type application/octet-stream;

do meu nginx.conf, mas isso não ajudou.

O cabeçalho http-response retorna

Status: �����

Meu bloco de servidor para o redirecionamento 301 de http: // para https: // tem a seguinte aparência

server {
   listen 80;
   listen [::]:80;
   server_name my.tld www.my.tld;
   return 301 https://$server_name$request_uri;
}

O Nginx não registra nada, quando recebe uma solicitação http: //. (/var/log/nginx/error.log | /var/log/nginx.access.log). Também PHP7.0-fpm.

Tudo o que é necessário está instalado, atualizado & atualizado. Um reinício dos serviços e do próprio servidor não ajudou.

Aqui está a saída do link curl -v

* Connected to my.tld (123.123.123.123) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.38.0
> Host: my.tld
> Accept: */*
> 
< HTTP/1.1 200 OK
< Mime-Version: 1.0
< Date: Thu, 06 Oct 2016 06:10:53 GMT
< X-Transformed-From: HTTP/0.9
< Transfer-Encoding: chunked
< Connection: keep-alive
< 
* Connection #0 to host my.tld left intact

Por que nginx retorna um 200 OK quando deve retornar 301 redirecionamentos permanentes?

Eu não mudei nada, funcionou com as mesmas configurações ... Espero que alguém possa me ajudar :-(. Poderia ser um problema de DNS?

Melhor Unkn0wn0x

    
por Unkn0wn0x 06.10.2016 / 08:28

4 respostas

1

Eu resolvi o problema. Era um arquivo de configuração de um subdomínio que tinha um diretório raiz próprio configurado. O arquivo de configuração do subdomínio tinha

listen 80 http2;
listen [::]:80 http2

que afetou todo o servidor sem erros / arquivos de log ou similar (nginx -t também positivo). Depois de reinstalar o nginx e fazer o backup dos arquivos de configuração passo a passo, encontrei o erro.

Obrigado pelo apoio.

Melhor Unkn0wn0x

    
por 06.10.2016 / 23:11
0

O cabeçalho X-Transformed-From parece suspeito. Verifique com o comando netstat -lnp se o nginx estiver realmente escutando a porta 80, ou se houver algum outro programa ouvindo-o.

Seu sistema pode estar comprometido. Nesse caso, você precisa restaurar a partir de backups e atualizar o sistema antes de colocá-lo on-line.

    
por 06.10.2016 / 13:19
0

Não encontrei nada em relação ao cabeçalho X-Transformed-From . Meu nginx está escutando nas seguintes portas:

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 10282/nginx -g daem tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 10282/nginx -g daem tcp6 0 0 :::443 :::* LISTEN 10282/nginx -g daem tcp6 0 0 :::80 :::* LISTEN 10282/nginx -g daem

Se eu solicitar https: // my.tld e depois disso http: // my.tld, funciona como um encanto. No celular, se eu solicitar em um link da guia anônima / privada, ele redireciona instantaneamente para https: //.

Eu tentei a ferramenta "Pesquisa HTTP" do link com meu domínio, ele retorna um erro:

HTTP connect The server committed a protocol violation. Section=ResponseStatusLine (http://my.tld)

Eu verifiquei se algumas regras de firewall (ufw) ou algo assim está bloqueando solicitações na porta 80, mas não foi assim.

status do ufw

80                         ALLOW       Anywhere
80 (v6)                    ALLOW       Anywhere (v6)
443                        ALLOW       Anywhere
443 (v6)                   ALLOW       Anywhere (v6)

No my.tld existem apenas alguns arquivos html, nenhum php ou similar.

Os erros do mxtoolbox dizem que ele não pôde se conectar ao meu servidor (http: // / port 80), mas é possível. A configuração do DNS também está bem.

Eu estou perdido: - (

Atenciosamente, Unkn0wn0x

    
por 06.10.2016 / 20:22
0

Adicionando isso simplesmente porque essa é uma das únicas páginas exibidas para uma pesquisa no Google sobre o tópico relacionado.

Eu tive o mesmo problema e finalmente descobri que a resolução era a mesma que você delineou.

Aparentemente, a especificação de http2 com listen 80 (no ssl) não é um bueno. E é ainda mais confuso porque isso passa por todas as verificações de configuração do nginx.

    
por 13.04.2017 / 21:45