Nginx и Munin через CGI, без CSS, без графиков

Вопрос или проблема

Я новичок в Munin и Nginx. Я установил и настроил Munin и создал блок сервера Nginx. Я вижу главную страницу, сгенерированную munin, с перечислением различных узлов. Но когда я нажимаю на хост, чтобы увидеть графики, я получаю только HTML-страницу без CSS и графиков. Точнее, в веб-странице тот же HTML-код, что и в файле CSS и даже в favicon.ico. И графики не загружаются (например, у меня нет 404).

Я следовал этому руководству.

Вот мой блок сервера Nginx:

server {
    listen 80;
    server_name munin.armagnac.[masked].com;

    location ^~ /cgi-bin/munin-cgi-graph/ {
        access_log off;
        fastcgi_split_path_info ^(/cgi-bin/munin-cgi-graph)(.*);
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_pass unix:/var/run/munin/fcgi-graph.sock;
        include fastcgi_params;
    }

    location /static/ {
        alias /etc/munin/static/;
    }

    location / {
        fastcgi_split_path_info ^(/munin)(.*);
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_pass unix:/var/run/munin/fcgi-html.sock;
        include fastcgi_params;
    }
}

У меня нет ошибок и ничего в логах.

Как уже сказано, страница узла почти пустая:

node webpage

Нет CSS, поскольку любой другой ресурс имеет тот же HTML-код:

css and favicon are html

Снова, в логах ничего нет, и HTML и Graphs CGIs работают нормально. Но я не знаю, где проблема с конфигурацией, например, на стороне Nginx или на стороне Munin.

ОС: Ubuntu Server 15.04

У меня также была такая проблема при настройке munin.

редактировать

Вот что я сделал:

  1. Установил spawn-fcgi из исходников
  2. Настроил скрипт запуска для spawn-fcgi
  3. Убедился, что местоположения /munin-cgi/munin-cgi-graph/ и /munin-cgi/munin-cgi-html/ перенаправляются на соответствующие процессы fcgi, запущенные.

Мой vhost, соответствующий раздел:

location /munin {
#    alias /var/cache/munin/www;
    index index.html;
#    include /etc/nginx/php.conf;
#    access_log off;
    allow 127.0.0.1;
    allow 192.168.0.0/16;
    deny all;                                
}

location ^~ /munin-cgi/munin-cgi-graph/ {
#   if ($uri ~ /munin-cgi/munin-cgi-graph/([^/]*)) { set $path $1; }
    fastcgi_split_path_info ^(/munin-cgi/munin-cgi-graph)(.*);
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_pass unix:/var/run/munin/fastcgi-munin-graph.sock;
    include fastcgi_params;
}
location  ^~ /munin-cgi/munin-cgi-html/ {
#   if ($uri ~ /munin-cgi/munin-cgi-html/([^/]*)) { set $path $1; }
    fastcgi_split_path_info ^(/munin-cgi/munin-cgi-html)(.*);
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_pass unix:/var/run/munin/fastcgi-munin-html.sock;
    include fastcgi_params;
}

Попробуйте мою настройку здесь:
https://serverfault.com/questions/670535/munin-nginx-no-dynazoom-into-graphs/745265#745265, где также включен скрипт инициализации.

Работает нормально для меня до сегодняшнего дня

У меня была точно такая же проблема. Что мне помогло, так это изменение

  location /munin/ {
    alias /var/cache/munin/www/;
    index index.html;
  }

на

  location ^~ /munin/ {
    alias /var/cache/munin/www/;
    index index.html;
  }

Обратите внимание на ^~. После изменения этого и перезагрузки Nginx все CSS и изображения начали загружаться правильно.

Ответ или решение

Чтобы решить проблему с отсутствием CSS и графиков в Munin при использовании Nginx, необходимо обратить внимание на несколько ключевых аспектов конфигурации и настройки сервера. Вот подробное руководство по настройке, основанное на вашем описании и рекомендуемых действиях специалистов.

1. Понимание проблемы

Вы установили и настроили Munin и Nginx, но при попытке доступа к графикам вместо ожидаемого контента вы видите лишь HTML-код без графиков и соответствующих стилей. Это происходит, когда статические файлы, такие как CSS и изображения, не могут быть успешно загружены. Среди причин могут быть неправильные конфигурации Nginx или проблемы с маршрутизацией запросов к FastCGI.

2. Проверка конфигурации Nginx

Вот пример корректной конфигурации server block для работы с Munin и Nginx, который следует обратить внимание:

server {
    listen 80;
    server_name munin.armagnac.[masked].com;

    location /munin/ {
        alias /var/cache/munin/www/;
        index index.html;
    }

    location ~ ^/munin-cgi/munin-cgi-graph/ {
        fastcgi_split_path_info ^(/munin-cgi/munin-cgi-graph)(.*);
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_pass unix:/var/run/munin/fastcgi-munin-graph.sock;
        include fastcgi_params;
    }

    location ~ ^/munin-cgi/munin-cgi-html/ {
        fastcgi_split_path_info ^(/munin-cgi/munin-cgi-html)(.*);
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_pass unix:/var/run/munin/fastcgi-munin-html.sock;
        include fastcgi_params;
    }

    location /static/ {
        alias /etc/munin/static/;
    }
}

3. Изменение конфигурации

Обратите внимание на следующее:

  • Используйте alias для статического контента: Убедитесь, что путь к статическим файлам корректно настроен с использованием директивы alias. Это важно для обеспечения доступа к CSS и изображениям.

  • Корректное использование регулярных выражений: Важно, чтобы вы использовали ~ или ^~ в местоположениях. Изменение на ^~ может помочь в некоторый случаях, как вы указали, но регулярные выражения могут дать больше контроля над обработкой путей.

4. Проверка FastCGI

Убедитесь, что ваши FastCGI процессы действительно запущены и правильно обрабатывают запросы. Проверьте, правильно ли настроены сокеты для munin-cgi-graph и munin-cgi-html:

# Убедитесь в наличии сокета
ls /var/run/munin/

Убедитесь, что они соответствуют путям в конфигурации.

5. Проверка прав доступа

Обеспечьте, чтобы у Nginx (или пользователя, под которым он работает) были необходимые права на доступ к директориям и файлам, поддерживающим Munin:

sudo chown -R www-data:www-data /var/cache/munin/www
sudo chmod -R 755 /var/cache/munin/www

6. Логи и отладка

Если после всех изменений проблема остается, проверьте логи Nginx и Munin для нахождения возможных ошибок:

# Логи Nginx
sudo tail -f /var/log/nginx/error.log

# Логи Munin
sudo tail -f /var/log/munin/munin-update.log

Заключение

Следуя этим рекомендациям и тщательно проверяя конфигурации, вы сможете устранить проблему с отсутствием CSS и графиков в Munin. Если проблема остается нерешенной, рекомендуется пересмотреть весь процесс установки и настройки Munin, возможно, управляя зависимостями и версиями используемого программного обеспечения. Удачи в вашей работе с Munin и Nginx!

Оцените материал
Добавить комментарий

Капча загружается...