Jump to content
Калькуляторы

Вопрос по настройке nginx

Переношу сервер с мониторингом и решил заодно сменить 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 для данной директивы и задаю в качестве корня родительский каталог.

Share this post


Link to post
Share on other sites

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

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

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

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this