Я застрял на правиле nginx:
Мне нужно использовать Nginx на нашем сервере мониторинга, он использует Zabbix. Я успешно настроил nginx для zabbix, чтобы получить доступ monit.domain.com и он отправляет меня в zabbix).
Но я не могу настроить monit.domain.com/dashboard поэтому он отображает содержимое / usr / share / панель управления / страницы, это тоже php (ну, имеет значение только index.php, как вы уже догадались, это моя панель инструментов).
Вот конкретная конфигурация nginx для панели управления: внутри /etc/nginx/sites-enabled/monitoring.conf:
server {
######## server stuff with /location and ssl certs
location /dashboard {
alias /usr/share/dashboard/pages/index.php;
}
}
Использование root не рекомендуется, следуя лучшим практикам nginx (и не работает, я все равно пробовал).
РЕДАКТИРОВАТЬ: вот ошибка, которую я получаю в журнале Nginx:
[error] 8247#0: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: XXX.XXX.XXX.XXX, server: monit.domain.com, request: "GET /dashboard/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "monit.domain.com"
Кто-нибудь может предложить мне, где посмотреть, спасибо.
Хорошо, я заставил его работать, как и должно, с этой конфигурацией:
server {
listen 443 ssl;
server_name monit.domain.com;
index index.php;
root /usr/share/zabbix;
error_log /var/log/nginx/error.log notice;
ssl on;
# SSL stuff
location / {
root /usr/share/zabbix;
}
location /dashboard {
root /usr/share;
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PHP_VALUE "
#many parameters
";
#fastcgi_stuff .....
}
В конце концов, переопределив новый корень и вложив сегмент php, чтобы указать, что он должен интерпретироваться, работает.