Вопрос или проблема
У меня есть VPS, который обслуживает веб-сайт с использованием nginx и jetty, и все работает отлично. Веб-сайт доступен через мой домен .com.
Я установил monitorix и хочу получить доступ к веб-интерфейсу monitorix, который также должен обслуживаться nginx (я не хочу устанавливать другой сервер, такой как lighttpd или apache, только для monitorix). В документации monitorix говорится, что он должен быть доступен по http://localhost/monitorix. Я попытался зайти на www.mydomain.com/monitorix, но у меня появилась моя собственная страница 404, и я также пробовал получить доступ к http://localhost/monitorix как с помощью curl, так и с помощью lynx, и у меня также появилась страница 404.
Как я могу настроить nginx для обслуживания WUI monitorix? Это нормально, если я настрою его для обслуживания только localhost, и я могу создать SSH-туннель со своего компьютера, чтобы увидеть страницу и графическую статистику.
Спасибо!!
Nginx не поддерживает CGI. Вы можете попробовать SimpleCGI, но я рекомендую установить Apache для Monitorix.
Вы можете использовать fcgiwrap для доступа к скрипту CGI Monitorix из NGINX.
location /monitorix {
alias /var/lib/monitorix/www/;
}
location /monitorix-cgi/ {
alias /var/lib/monitorix/www/cgi/;
include fastcgi_params;
fastcgi_pass unix:/run/fcgiwrap.socket;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
Как указано в FAQ, веб-серверу нужны права на запись в каталог imgs:
chown -R www-data:www-data /var/lib/monitorix/www/imgs
Довольно старая тема, но она может быть обновлена.
Вы также можете использовать собственный CGI-сервер Monitorix с NGINX или Apache в качестве обратных прокси, так что нет необходимости устанавливать дополнительные пакеты для этого. Просто следуйте инструкциям, чтобы добавить сайты в конфигурационные файлы NGINX или Apache здесь:
Ответ или решение
Чтобы настроить Monitorix на вашем VPS с использованием Nginx, необходимо проделать несколько шагов. Monitorix использует CGI-скрипты, что требует конфигурации Nginx для обработки таких запросов. Данная инструкция будет включать необходимые настройки и сведения, которые помогут вам без проблем интегрировать Monitorix с вашим текущим стеком.
Шаги по настройке Nginx для Monitorix
-
Установка fcgiwrap:
Для обработки CGI-запросов вам необходимо установитьfcgiwrap
, который позволяет Nginx выполнять CGI-скрипты.В зависимости от вашей операционной системы, вы можете установить его с помощью следующих команд:
Для Debian/Ubuntu:
sudo apt-get install fcgiwrap
Для CentOS:
sudo yum install fcgiwrap
-
Конфигурация fcgiwrap:
Убедитесь, чтоfcgiwrap
запущен и работает. Обычно он запускается как сервис и может использовать сокет Unix. Это необходимо для корректного взаимодействия с Nginx.Проверьте наличие сокета по пути
/run/fcgiwrap.socket
или аналогичному, который используется в вашей системе. Если его там нет, настройте его следующим образом:sudo systemctl start fcgiwrap sudo systemctl enable fcgiwrap
-
Конфигурация Nginx:
Включите следующую конфигурацию в файл конфигурации вашего сайта (обычно находится по пути/etc/nginx/sites-available/default
или аналогичном):server { listen 80; server_name example.com; # замените на ваше доменное имя location /monitorix { alias /var/lib/monitorix/www/; } location /monitorix-cgi/ { alias /var/lib/monitorix/www/cgi/; include fastcgi_params; fastcgi_pass unix:/run/fcgiwrap.socket; fastcgi_param SCRIPT_FILENAME $request_filename; } }
Убедитесь, что путь к каталогам —
/var/lib/monitorix/www/
и/var/lib/monitorix/www/cgi/
— соответствует вашему окружению. Если у вас другой путь установки, измените его соответственно. -
Настройка прав доступа:
Monitorix требует наличия прав на запись в директорию изображений. Выполните следующую команду для установки необходимых прав:sudo chown -R www-data:www-data /var/lib/monitorix/www/imgs
Это важно для обеспечения корректной работы Monitorix, поскольку ему потребуется создавать и обновлять графические статические файлы.
-
Проверка конфигурации и перезапуск Nginx:
После внесения изменений проверьте конфигурацию Nginx на наличие ошибок:sudo nginx -t
Если тест прошел успешно, перезапустите Nginx для применения изменений:
sudo systemctl restart nginx
-
Доступ к интерфейсу Monitorix:
Теперь вы должны иметь возможность получить доступ к веб-интерфейсу Monitorix по адресуhttp://example.com/monitorix
. Если вы хотите получить доступ к Monitorix локально, вы также можете использовать SSH-туннелирование, чтобы перенаправить локальный порт на ваш сервер.
Заключение
Теперь вы успешно сконфигурировали Monitorix для работы с Nginx на вашем VPS. Используя fcgiwrap
, вы можете обойти необходимость в установке отдельного веб-сервера, такого как Apache или Lighttpd. Следуя вышеприведённым шагам, вы обеспечите доступ к всем необходимым статистикам и графикам Monitorix, при этом оставаясь в рамках своего текущего стека технологий.