Страница состояния Nginx не найдена

Я пытаюсь включить страницу состояния 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?

2
задан 6 January 2017 в 18:04
2 ответа

В вашем блоке server отсутствует директива listen :

    listen [::]:80;

Эта директива указывает nginx отвечать на IPv6-соединения для этого сервера . К сожалению, вы его пропустили и отвечаете только на соединения IPv4.

Но, поскольку localhost преобразуется в адрес IPv6 (и фактически, IPv6 является протоколом по умолчанию для всего в Интернете), ваш запрос обрабатывается обрабатывается блоком сервера по умолчанию, включенным в конфигурацию по умолчанию, которая - это прослушивание IPv6.

Вы должны быть особенно осторожны, чтобы убедиться, что все серверы блокирует прослушивание на IPv6 (обязательно, даже если у вас еще нет глобального IPv6) и IPv4 (необязательно, только если вы используете IPv4).

3
ответ дан 3 December 2019 в 09:15

Я не вижу никаких проблем с вашей конфигурацией, и это 404, а не 403, что означает, что он даже не читал эту конфигурацию, поэтому шаги отладки, которые я хотел бы выполнить, :

  • вы перезапустили nginx;)
  • что-нибудь в error_log?
  • действительно ли nginx слушает локальный хост? на ip4 и ip6? ( netstat -plnt )
  • попробуйте wget с отображением заголовков ( wget -SO- http: // localhost / nginx_status ) возможно что-то появится
  • действительно nginx читаете этот файл конфигурации? (есть ли еще где-нибудь? сделайте намеренную опечатку и посмотрите, не срабатывает ли он)
  • есть ли более одного nginx? (здесь растягиваются, но случаются и более странные вещи). Возможно, перезапуск не убивает старый процесс?
  • удалите директиву server_name и попробуйте без нее
3
ответ дан 3 December 2019 в 09:15

Теги

Похожие вопросы