У меня есть место для /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 только локально?
Добавьте для этого специальный сервер, который слушает только локальный хост.
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;
}
}