Jump to content

Recommended Posts

Posted

Переношу сервер с мониторингом и решил заодно сменить apache на nginx.

В "односайтовом" режиме (один домен - один сайт) все получилось, теперь хочу сделать более сложную конфигурацию.

Файловая система:

/srv/netmon/www    - корень www
  cacti/           - корень Cacti
  (...)            - еще несколько веб-сервисов

Конфигурация следующая:

server {

        listen          80;
        server_name     netmon;
        root            /srv/netmon/www;
        index           index.html;
        access_log      /srv/netmon/log/access.log;
        error_log       /srv/netmon/log/error.log;

        location = /favicon.ico {
                access_log      off;
                log_not_found   off;
        }

        location / {
                try_files       $uri $uri/ =404;
        }

        location ~ /\.ht {
                deny            all;
        }

        location /cacti/ {
                root            /srv/netmon/www/cacti;
                index           index.php;
                access_log      /srv/netmon/log/access_cacti.log;
                error_log       /srv/netmon/log/error_cacti.log;
                location ~ [^/]\.php(/|$) {
                        fastcgi_pass    unix:/var/run/php/cacti.sock;
                        fastcgi_split_path_info ^(.+\.php)(/.+)$;
                        fastcgi_index   index.php;
                        fastcgi_param   DOCUMENT_ROOT   /srv/netmon/www;
                        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
                        fastcgi_param   PATH_TRANSLATED $document_root$fastcgi_script_name;
                        include fastcgi_params;
                        fastcgi_intercept_errors        on;
                        fastcgi_ignore_client_abort     off;
                        fastcgi_connect_timeout         60;
                        fastcgi_send_timeout            180;
                        fastcgi_read_timeout            180;
                        fastcgi_buffer_size             128k;
                        fastcgi_buffers                 4 256k;
                        fastcgi_busy_buffers_size       256k;
                        fastcgi_temp_file_write_size    256k;
                }
        }

}

В моем представлении должно работать так.

Открываю хост <netmon>/cacti/.

Запросу соответствует директива "location /cacti/", в которой задается root, index, логи.

Внутри этой директивы есть вложенная, которая соответствует любым php-файлам, в частности index.php.

Далее работает php-fpm, в который по идее должен передаться путь /cacti/index.php.

Однако сайт не работает, а в логах такая ошибка: "/srv/netmon/www/cacti/cacti/index.php" is not found (2: No such file or directory)

Не могу понять, почему cacti удваивается. Я ведь переопределяю root для данной директивы и задаю в качестве корня родительский каталог.

Posted

Вроде бы разобрался.

Путь в uri никуда не девается, то есть он добавляется к root, вот и получается удвоение.

Убрал вообще root из секции, теперь сайт запустился.

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.