Я пытаюсь заставить Nginx обслуживать Cacti (приложение для мониторинга php) из поддомена, используя следующую конфигурацию:
server {
listen 80;
server_name cacti.mydomain.net;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name cacti.mydomain.net;
root /usr/share/webapps/cacti;
index index.php;
charset utf-8;
location ~ \.php?$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
access_log /var/log/nginx/cacti.access.log main;
error_log /var/log/nginx/cacti.error.log warn;
include ssl.conf;
}
Однако когда я иду в https://cacti.mydomain.net/, Nginx возвращает ошибку 404. В журнале ошибок отображаются строки, подобные этой:
[error] 41809#41809: *26 open() "/usr/share/webapps/cacti/cacti/include/themes/modern/images/cacti_logo.gif" failed (2: No such file or directory), client: 83.162.2.169, server: cacti.mydomain.net, request: "GET /cacti/include/themes/modern/images/cacti_logo.gif HTTP/2.0"
Похоже, что запрос идет туда, где находится файл, но пытается открыть его не с того места (cacti / cacti / include / ...)
Я пробовал разные блоки местоположения, но это меняет URL-адрес на https://cacti.mydomain.net/cacti/ чего я не хочу. Может кто-нибудь сказать мне, что мне здесь не хватает? Спасибо за любую помощь!
Конфигурация в /usr/share/webapps/cacti/include/config.php, похоже, содержала эту строку:
$url_path = '/cacti/';
Замена значения на косую черту решила проблему.