Ignorar o SSL no host local ao atingir o status do nginx

3

Eu tenho um local para /nginx_status e instalei um certificado SSL ontem à noite.

server {
    listen 443;
    ...
    location /nginx_status {
        stub_status on;
        access_log off;
        allow 127.0.0.1;
        deny all;
    }
}

Isso funcionava na instalação do pré-certificado quando ainda estava na porta 80. Agora, redirecionei para redirecionar o tráfego do domínio do domínio e do domínio do domínio para https, por exemplo.

server {
        listen 80;
        server_name domain.tld;
        return 301 https://domain.tld$request_uri;
}

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

Estou usando o graphdat-relay para monitorar as estatísticas do nginx e, agora, curl http://127.0.0.1/nginx_status apenas obtém a página de redirecionamento, por exemplo,

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.6.2</center>
</body>
</html>

Como eu digo ao nginx para ignorar SSL e permitir / nginx_status localmente somente ?

    
por David Fox 10.10.2014 / 14:26

1 resposta

8

Adicione um servidor especial para isso que só escuta no host local.

server {
    listen 127.0.0.1:80;
    listen [::1]:80;
    ...
    location /nginx_status {
        stub_status on;
        access_log off;
        allow 127.0.0.1;
        deny all;
    }
}
    
por 10.10.2014 / 14:30