Я пытаюсь включить страницу состояния Nginx на моем сервере Centos 7.
Я установил Nginx из репозитория EPEL, Nginx построен с поддержкой страницы статуса:
[root@server ~]# nginx -V 2>&1 | grep -o with-http_stub_status_module
with-http_stub_status_module
Я добавил один файл конфигурации /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;
}
}
После перезапуска Nginx не может найти страницу состояния:
[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.
Каждый учебник или пример, который я нашел в Интернете, говорит, что это шаги, которые я должен предпринять . Почему я продолжаю получать 404?
В вашем блоке server
отсутствует директива listen
:
listen [::]:80;
Эта директива указывает nginx отвечать на IPv6-соединения для этого сервера
. К сожалению, вы его пропустили и отвечаете только на соединения IPv4.
Но, поскольку localhost
преобразуется в адрес IPv6 (и фактически, IPv6 является протоколом по умолчанию для всего в Интернете), ваш запрос обрабатывается обрабатывается блоком сервера
по умолчанию, включенным в конфигурацию по умолчанию, которая - это прослушивание
IPv6.
Вы должны быть особенно осторожны, чтобы убедиться, что все серверы
блокирует прослушивание
на IPv6 (обязательно, даже если у вас еще нет глобального IPv6) и IPv4 (необязательно, только если вы используете IPv4).
Я не вижу никаких проблем с вашей конфигурацией, и это 404, а не 403, что означает, что он даже не читал эту конфигурацию, поэтому шаги отладки, которые я хотел бы выполнить, :
netstat -plnt
) wget -SO- http: // localhost / nginx_status
) возможно что-то появится