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 / 930808
Accepted
Arthur Attout
Arthur Attout
Asked: 2018-09-14 12:14:11 +0800 CST2018-09-14 12:14:11 +0800 CST 2018-09-14 12:14:11 +0800 CST

Por que o NGINX está retornando 301 para recursos inexistentes?

  • 772

Às vezes, esse tipo de linha aparece no meu access.log:

149.28.156.181 - - [13/Sep/2018:20:35:09 +0100] "GET /js/czjl.js HTTP/1.1" 301 184 "-" "Mozilla/5.0 ..."

O recurso /js/czjl.jsnão existe no meu servidor. No entanto, o NGINX respondeu com 301 em vez de 404. Se eu tentar a mesma solicitação com o Postman, recebo

192.168.1.67 - - [13/Sep/2018:21:09:34 +0100] "GET /js/czjl.js HTTP/1.1" 404 1140 "-" "PostmanRuntime/7.3.0"

que é o comportamento esperado.

Por que o NGINX está retornando 301 em vez de 404 se esses recursos não estiverem no meu servidor?

Aqui está minha configuração

server {
    listen 80;

    server_name example.com www.example.com;

    location ~ /.well-known {
        allow all;
    }

    location / {
        limit_except GET {
            deny all;     
        }
        return 301 https://www.example.com$request_uri;
    }

    location ~ /\. { deny all;}

}

server{
    #FOR INTERNAL REQUESTS

    listen 8080;

    server_name 192.168.1.75;
    error_page 401 403 404 /404.html;
    location = /404.html {
            root /var/www/html/error/;
            internal;
    }

    location / {
        limit_except GET {
            deny all;     
        }
    }

    root /var/www/html;
    index index.html;
}

server {
    listen 443 ssl;

    server_name example.com www.example.com;

    location / {
        limit_except GET {
            deny all;     
        }
    }

    root /var/www/html;
    index index.html;
    error_page 401 403 404 /404.html;
    location = /404.html {
            root /var/www/html/error/;
            internal;
    }

    #SSL Config
    ...
}
nginx
  • 1 1 respostas
  • 1530 Views

1 respostas

  • Voted
  1. Best Answer
    Storm
    2018-09-14T18:25:12+08:002018-09-14T18:25:12+08:00

    Eu tive a mesma mensagem de log no meu servidor web Apache. Há dois lados para isso: por que o redirecionamento HTTP 301 está ocorrendo e por que não há uma solicitação HTTP subsequente registrada após o redirecionamento HTTP 301.

    No meu servidor web, habilitei o encaminhamento de http para https, juntamente com o encaminhamento de subdomínio de qualquer subdomínio para o subdomínio correto. Isso significa que qualquer solicitação http ou qualquer solicitação no subdomínio errado, seja para um recurso válido ou inválido, passaria primeiro por um redirecionamento HTTP 301. Por exemplo, quando eu acesso http://<mydomain>/js/czjl.js, o Apache registra um HTTP 301 devido ao encaminhamento da solicitação http para https primeiro, mas https://<mydomain>/js/czjl.jso acesso registrará um HTTP 404.

    A maneira como a chamada da web para http://<mydomain>/js/czjl.jsé criada também determinará se apenas um HTTP 301 é registrado ou se um HTTP 301 é registrado imediatamente seguido por um HTTP 404. Por exemplo, usar este wgetcomando aciona um HTTP 301 nos logs do meu servidor da web sem um HTTP 404 subsequente:

    wget --max-redirect=0 http://<mydomain>/js/czjl.js
    

    Se eu deixar de fora a --max-redirect=0opção, os logs exibem o HTTP 301 seguido por um HTTP 404. No entanto, ao ignorar os redirecionamentos, a solicitação wget foi atendida após obter a resposta HTTP 301 do servidor web. Suspeito que esses usuários finais estejam usando uma opção semelhante "sem redirecionamentos" em suas chamadas da Web, o que resulta no HTTP 301 ocasional para um recurso inexistente. Caso contrário, nossos servidores web teriam registrado um HTTP 404 após o HTTP 301.

    • 2

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