O servidor retorna um código 404 ao solicitar o HEAD?

2

Eu configurei meu servidor com Nginx (v =) e, quando tento solicitar o uso de HEAD, recebi um erro 404:

curl -I http://postera.in

HTTP/1.1 404 Not Found
Server: nginx/1.2.1
Date: Thu, 19 Dec 2013 09:51:53 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 1900
Connection: keep-alive

Aqui está minha configuração de Nginx do servidor:

server {
    listen       80;
    server_name  www.postera.in;
    return       301 $scheme://postera.in$request_uri;
}

server {
    listen       80;
    server_name  postera.in;
    access_log /var/log/nginx/postera_manager.access.log;
    error_log /var/log/nginx/postera_manager.error.log;

    location / {
        proxy_buffering    off;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Scheme $scheme;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   Host $http_host;
        proxy_pass  http://127.0.0.1:9800;
    }
}

O que há de errado com essa configuração? Por que um HEAD retorna 404 em vez de 200?

Obrigado pela ajuda:)

    
por Cyril N. 19.12.2013 / 10:56

3 respostas

2

Bem, eu vou me responder sobre isso.

O problema não é do NGinx, mas do backend, aqui, o PlayFramework que retorna um 404 quando um HEAD é solicitado e os arquivos de rotas não contêm HEAD.

Um erro foi aberto para isso: link

    
por 28.01.2014 / 10:50
0

qual é o ponto a ser usado:

return       301 $scheme://postera.in$request_uri;

e porque não este:

server_name www.example.com;
   rewrite ^ http://example.com$request_uri? permanent;

Além disso, você pode depurar a resposta diretamente do backup sem o nginx pelo seguinte comando da linha de comando no servidor:

curl -I postera.in  --resolve  postera.in:9800:127.0.0.1 
    
por 01.02.2014 / 23:40
-1

Para solucionar esse problema, eu abriria dois terminais no servidor da Web para rastrear seu /var/log/nginx/postera_manager.access.log e /var/log/nginx/postera_manager.error.log juntamente com a execução do Wireshark nas duas extremidades (curl e servidor da Web).

Além disso, o servidor responde ao link E link Eu daria uma onda em ambos. Além disso, eu também daria uma chance ao wget ou a qualquer outro rastreador da Web, como o Lynx, para eventualmente notar uma diferença. Das diferenças muitas vezes vêm a definição do problema raiz. Desde a causa raiz, a solução surge naturalmente.

Eu nunca suponho uma causa raiz, desde que não seja apoiada por fatos observados, cruzando o máximo possível as condições de teste.

Na esperança, o acima pode ajudar. Saudações, Philippe Vouters (Fontainebleau / France [quase toda carreira como suporte de engenheiro de software])

    
por 02.02.2014 / 00:04