Página de status do Nginx não encontrada

2

Estou tentando ativar a página de status do Nginx no meu servidor Centos 7.

Eu instalei o Nginx do repositório EPEL, o Nginx é construído com suporte à página de staus:

[root@server ~]# nginx -V 2>&1 | grep -o with-http_stub_status_module
with-http_stub_status_module

Eu adicionei um único arquivo de configuração /etc/nginx/conf.d/status.conf:

server {
    listen 80;
    server_name localhost;

    location /nginx_status {
        stub_status on;
        access_log off;
        allow 127.0.0.1;
        deny all;
    }
}

Após o reinício, o Nginx não consegue encontrar a página de estado:

[root@server ~]# wget http://localhost/nginx_status
--2017-01-06 17:02:09--  http://localhost/nginx_status
Resolving localhost (localhost)... ::1, 127.0.0.1
Connecting to localhost (localhost)|::1|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2017-01-06 17:02:09 ERROR 404: Not Found.

Todo tutorial ou exemplo que encontrei on-line diz que essas são as etapas que devo seguir. Por que eu continuo recebendo um 404?

    
por verhage 06.01.2017 / 17:04

2 respostas

3

Seu bloco server está sem uma diretiva listen :

    listen [::]:80;

Esta diretiva diz ao nginx para responder às conexões IPv6 para esse server . Infelizmente você o omitiu e está respondendo apenas conexões IPv4.

Mas, como localhost resolve um endereço IPv6 (e, na verdade, IPv6 é o protocolo padrão para tudo na Internet), sua solicitação está sendo processada pelo bloco server padrão incluído na configuração padrão, que < em> é listen ing em IPv6.

Você deve ser extremamente cuidadoso para garantir que todos os server bloqueiem listen no IPv6 (obrigatório, mesmo se você ainda não tiver IPv6 global) e IPv4 (opcional, somente se você usar IPv4).

    
por 06.01.2017 / 18:27
3

Não consigo ver nenhum problema com a sua configuração e é 404 em vez de 403, o que implica que nem sequer é lida essa configuração, pelo que os passos de depuração pelos quais passaria são:

  • você reiniciou o nginx;)
  • alguma coisa no error_log?
  • o nginx está realmente ouvindo no localhost? em ip4 e ip6? ( netstat -plnt )
  • tente wget com os cabeçalhos mostrando ( wget -SO- http://localhost/nginx_status ) talvez algo apareça
  • o nginx está realmente lendo este arquivo de configuração? (existe outro em algum lugar? faça um erro deliberado e veja se ele vomita)
  • há mais de um nginx? (ficando esticada aqui, mas coisas estranhas aconteceram). Talvez um reinício não esteja eliminando o antigo processo?
  • remova a diretiva server_name e tente sem ela
por 06.01.2017 / 17:56