Обход SSL на локальном хосте при достижении статуса nginx

У меня есть место для /nginx_status, и я установил сертификат SSL прошлой ночью.

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

Это работало до предварительной установки сертификата, когда он все еще был на порту 80. Теперь у меня есть перенаправления на месте для перенаправления трафика www.domain.tld и domain.tld на https, например

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;
}

Я использую graphdat-relay для мониторинга статистики nginx, а сейчас curl http://127.0.0.1/nginx_status просто получает страницу перенаправления, например

<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>

Как сказать nginx обойти SSL и разрешить /nginx_status только локально?

1 ответ

Решение

Добавьте для этого специальный сервер, который прослушивает только локальный хост.

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;
    }
}
Другие вопросы по тегам