Вопрос или проблема
Я новичок в 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;
}
}
У меня нет ошибок и ничего в логах.
Как уже сказано, страница узла почти пустая:
Нет CSS, поскольку любой другой ресурс имеет тот же HTML-код:
Снова, в логах ничего нет, и HTML и Graphs CGIs работают нормально. Но я не знаю, где проблема с конфигурацией, например, на стороне Nginx или на стороне Munin.
ОС: Ubuntu Server 15.04
У меня также была такая проблема при настройке munin.
редактировать
Вот что я сделал:
- Установил spawn-fcgi из исходников
- Настроил скрипт запуска для spawn-fcgi
- Убедился, что местоположения
/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!