Por que recebo um 404 Not Found ao tentar obter o status do servidor?

6
<Location /status>
    SetHandler server-status
    order deny,allow
    allow from all
</Location>

Mas quando visito http://ip:port/status ,

um 404 Not Found é informado, por quê?

    
por linux 19.07.2011 / 06:28

6 respostas

12

Isso também pode acontecer quando você tem um arquivo .htaccess na raiz do documento e esse arquivo contém RewriteRule , como é comum em URLs bonitos do CMS. As diretivas <Location> agem primeiro, mas o manipulador não é chamado nesse estágio. Então, o RewriteRule define um manipulador, por exemplo, um script PHP, então SetHandler efetivamente não faz nada.

Se esse for o caso, encontre o RewriteRule que está causando o problema e adicione antes:

RewriteCond %{REQUEST_URI} !=/server-status

(Apache 2.2.22)

Adendo: também note que você pode obter um 403 se o DocumentRoot não puder ser lido pelo processo do apache, novamente porque o manipulador de status do servidor não tem chance de funcionar.

Adendo 2: se o .htaccess para o site padrão do Apache for frequentemente substituído, e a /server-status URL for necessária para, por exemplo, Munin funcionar, criar uma sub-rotina <VirtualHost 127.0.0.1:80> incluindo o manipulador de status do servidor pode ser administrativamente mais simples.

    
por 01.12.2014 / 16:52
4

Meu palpite é que você não carregou o módulo de status - Você pode confirmar?

    
por 19.07.2011 / 11:17
3

Porque você configurou algo errado. O que seus logs dizem sobre a causa do 404? Meu primeiro palpite seria que ip:port não é um vhost válido (ou pelo menos não é válido para o vhost que você colocou o <Location /status> , de qualquer maneira), e provavelmente está voltando para o vhost padrão. Os logs de erro farão menção a caminhos irracionais que você não configurou, se for esse o caso. Outras mensagens de log de erro significam coisas diferentes, e é por isso que é tão importante verificar isso.

    
por 19.07.2011 / 06:33
0
  • você não precisa configurar um diretório ou caminho ou arquivo de índice
  • você está tentando uma porta diferente? você não deveria ser a porta 80

os documentos são:

<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
</Locaton>

sua localização é diferente, eu não acho que isso deva importar, mas tente sua localização como / server-status em vez de apenas / status.

No entanto - acho que Spud está certo. você não carregou esse módulo.

-sean

    
por 19.07.2011 / 16:34
0

Se você estiver usando o WampServer , como estou para o desenvolvimento, tome nota do seguinte:

  • O arquivo httpd-info.conf localizado em wamp\bin\apache\apache[version]\conf\extra contém a configuração <Location> relevante:

    <Location /server-status> SetHandler server-status #Require host .example.com #Require ip 127 </Location>

  • Este arquivo pode ou não estar incluído na sua configuração do Apache. Procure a seguinte linha no seu arquivo httpd.conf e verifique se não está comentada:

    Include conf/extra/httpd-info.conf

No meu caso, o principal problema foi o último: a linha foi comentada por padrão e, portanto, httpd-info.conf não estava carregando.

    
por 21.12.2016 / 23:33
-1

Se você estiver usando a configuração mod_rewrite e vhost, será necessário adicionar uma entrada vhost em branco na parte superior do arquivo de configuração vhost, por exemplo,

<VirtualHost *:80>
</VirtualHost>

Em seguida, você pode acessá-lo por meio do endereço IP do servidor. ip_address / server-status

    
por 09.10.2013 / 08:41

Tags